pdf viewer dll for c# : Adding a png to a pdf SDK software service wpf winforms windows dnn postgresql-9.4-A4165-part2796

SECURITY LABEL
Compatibility
There is no
SECURITY LABEL
command in the SQL standard.
See Also
sepgsql, dummy_seclabel
1578
Adding a png to a pdf - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
add image to pdf online; how to add image to pdf in preview
Adding a png to a pdf - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
adding an image to a pdf file; how to add jpg to pdf file
SELECT
Name
SELECT, TABLE, WITH — retrieve rows from a table or view
Synopsis
[ WITH [ RECURSIVE ]
with_query
[, ...] ]
SELECT [ ALL | DISTINCT [ ON (
expression
[, ...] ) ] ]
[
*
|
expression
[ [ AS ]
output_name
] [, ...] ]
[ FROM
from_item
[, ...] ]
[ WHERE
condition
]
[ GROUP BY
expression
[, ...] ]
[ HAVING
condition
[, ...] ]
[ WINDOW
window_name
AS (
window_definition
) [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ]
select
]
[ ORDER BY
expression
[ ASC | DESC | USING
operator
] [ NULLS { FIRST | LAST } ] [, ...] ]
[ LIMIT {
count
| ALL } ]
[ OFFSET
start
[ ROW | ROWS ] ]
[ FETCH { FIRST | NEXT } [
count
] { ROW | ROWS } ONLY ]
[ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF
table_name
[, ...] ] [ NOWAIT ] [...] ]
where
from_item
can be one of:
[ ONLY ]
table_name
[
*
] [ [ AS ]
alias
[ (
column_alias
[, ...] ) ] ]
[ LATERAL ] (
select
) [ AS ]
alias
[ (
column_alias
[, ...] ) ]
with_query_name
[ [ AS ]
alias
[ (
column_alias
[, ...] ) ] ]
[ LATERAL ]
function_name
( [
argument
[, ...] ] )
[ WITH ORDINALITY ] [ [ AS ]
alias
[ (
column_alias
[, ...] ) ] ]
[ LATERAL ]
function_name
( [
argument
[, ...] ] ) [ AS ]
alias
(
column_definition
[, ...] )
[ LATERAL ]
function_name
( [
argument
[, ...] ] ) AS (
column_definition
[, ...] )
[ LATERAL ] ROWS FROM(
function_name
( [
argument
[, ...] ] ) [ AS (
column_definition
[, ...] ) ] [, ...] )
[ WITH ORDINALITY ] [ [ AS ]
alias
[ (
column_alias
[, ...] ) ] ]
from_item
[ NATURAL ]
join_type from_item
[ ON
join_condition
| USING (
join_column
[, ...] ) ]
and
with_query
is:
with_query_name
[ (
column_name
[, ...] ) ] AS (
select
|
values
|
insert
|
update
|
delete
TABLE [ ONLY ]
table_name
[
*
]
Description
SELECT
retrieves rows from zero or more tables. The general processing of
SELECT
is as follows:
1. Allqueries inthe
WITH
list are computed. These effectively serve as temporary tables that can be
referencedin the
FROM
list. A
WITH
query that is referenced more thanonce in
FROM
is computed
only once. (See WITH Clause below.)
1579
VB.NET TIFF: Modify TIFF File by Adding, Deleting & Sort TIFF
img As New REImage(filePath, ImageFormat.Png) Dim page As Pages Modifier. Opposite to page adding & inserting & profession imaging controls, PDF document, image
add an image to a pdf with acrobat; add signature image to pdf acrobat
VB.NET Image: Adding Line Annotation to Images with VB.NET Doc
Line Annotation on Image. Displayed below are the complete Visual Basic .NET sample codes for adding a line annotation on your image (supporting png, jpeg, gif
how to add photo to pdf in preview; add image to pdf file acrobat
SELECT
2. All elements in the
FROM
list are computed. (Each element in the
FROM
list is a real or virtual
table.) If more than one element is specified in the
FROM
list, they are cross-joined together. (See
FROM Clause below.)
3. If the
WHERE
clause is specified, all rows that donot satisfythe condition are eliminated from the
output. (See WHERE Clause below.)
4. If the
GROUP BY
clause is specified, or if there are aggregate function calls, the output is com-
bined intogroups of rows that match onone or more values, andtheresults of aggregate functions
are computed. If the
HAVING
clause is present, it eliminates groups that do not satisfy the given
condition. (See GROUP BY Clause and HAVING Clause below.)
5. The actual output rows are computed using the
SELECT
output expressions for each selected row
or row group. (See SELECT List below.)
6.
SELECT DISTINCT
eliminates duplicate rows from the result.
SELECT DISTINCT ON
elimi-
nates rows that match on all the specified expressions.
SELECT ALL
(the default) will return all
candidate rows, including duplicates. (See DISTINCT Clause below.)
7. Using the operators
UNION
,
INTERSECT
, and
EXCEPT
, the output of more than one
SELECT
statement can be combined to form a single result set. The
UNION
operator returns all rows that
are in one or both of the result sets. The
INTERSECT
operator returns all rows that are strictly in
both result sets. The
EXCEPT
operator returns the rows that are in the first result set but not in the
second. In all three cases, duplicate rows are eliminated unless
ALL
is specified. The noise word
DISTINCT
canbeadded to explicitlyspecifyeliminatingduplicaterows. Notice that
DISTINCT
is
the default behavior here, even though
ALL
is the default for
SELECT
itself. (See UNION Clause,
INTERSECT Clause, and EXCEPT Clause below.)
8. If the
ORDER BY
clause is specified, the returned rows are sorted in the specified order. If
ORDER
BY
is not given, the rows are returned in whatever order the system finds fastest to produce. (See
ORDER BY Clause below.)
9. If the
LIMIT
(or
FETCH FIRST
)or
OFFSET
clause is specified, the
SELECT
statement only re-
turns a subset of the result rows. (See LIMIT Clause below.)
10. If
FOR UPDATE
,
FOR NO KEY UPDATE
,
FOR SHARE
or
FOR KEY SHARE
is specified, the
SELECT
statement locks the selected rows against concurrent updates. (See The Locking Clause
below.)
You must have
SELECT
privilege on each column used in a
SELECT
command. The use of
FOR NO
KEY UPDATE
,
FOR UPDATE
,
FOR SHARE
or
FOR KEY SHARE
requires
UPDATE
privilege as well (for
at least one column of each table so selected).
Parameters
WITH
Clause
The
WITH
clause allows you to specify one or more subqueries that can be referenced by name in
the primary query. The subqueries effectively act as temporary tables or views for the duration of
the primary query. Each subquery can be a
SELECT
,
TABLE
,
VALUES
,
INSERT
,
UPDATE
or
DELETE
statement. When writing a data-modifying statement (
INSERT
,
UPDATE
or
DELETE
)in
WITH
,it is
usual to include a
RETURNING
clause. Itis the output of
RETURNING
,not the underlying table that the
statementmodifies, that forms the temporary table that is read by the primary query. If
RETURNING
is
1580
VB.NET Word: Word Image Adding Guide in VB.NET
Common image formats, including gif, jpeg, png, tiff and NET Framework, this Word image adding toolkit also & profession imaging controls, PDF document, image
adding a jpeg to a pdf; add photo to pdf file
C# PDF Page Insert Library: insert pages into PDF file in C#.net
are capable of adding and inserting (empty) PDF page or pages from various file formats, such as PDF, Tiff, Word, Excel, PowerPoint, Bmp, Jpeg, Png, Gif, and
add image to pdf file; add a picture to a pdf file
SELECT
omitted, the statement is still executed, but it produces no output so it cannot be referenced as a table
by the primary query.
Aname (without schema qualification) must be specified for each
WITH
query. Optionally, a list of
column names can be specified; if this is omitted, the column names are inferred from the subquery.
If
RECURSIVE
is specified, itallows a
SELECT
subquery to reference itself byname. Sucha subquery
must have the form
non_recursive_term
UNION [ ALL | DISTINCT ]
recursive_term
wheretherecursive self-referencemustappear ontheright-handsideof the
UNION
.Onlyonerecursive
self-reference is permittedper query. Recursive data-modifying statements are not supported, but you
can use the results of a recursive
SELECT
query in a data-modifying statement. See Section 7.8 for an
example.
Another effect of
RECURSIVE
is that
WITH
queries neednotbe ordered:a querycan reference another
one that is later in the list. (However, circular references, or mutual recursion, are not implemented.)
Without
RECURSIVE
,
WITH
queries can only reference sibling
WITH
queries that are earlier in the
WITH
list.
Akeyproperty of
WITH
queries is that theyare evaluated onlyonce per executionof the primaryquery,
even if the primary query refers to them more than once. In particular, data-modifyingstatements are
guaranteed to be executed once and only once, regardless of whether the primary query reads all or
any of their output.
The primary query and the
WITH
queries are all (notionally) executed at the same time. This implies
that the effects of a data-modifying statement in
WITH
cannot be seen from other parts of the query,
other thanbyreading its
RETURNING
output. If twosuch data-modifyingstatements attempt to modify
the same row, the results are unspecified.
See Section 7.8 for additional information.
FROM
Clause
The
FROM
clause specifies oneor more source tables for the
SELECT
.If multiple sources are specified,
the result is the Cartesian product (cross join) of all the sources. But usually qualification conditions
are added (via
WHERE
)to restrict the returned rows to a small subset of the Cartesian product.
The
FROM
clause can contain the following elements:
table_name
The name (optionally schema-qualified) of an existing table or view. If
ONLY
is specified before
the table name, onlythat tableis scanned. If
ONLY
is not specified, the table and all its descendant
tables (if any) are scanned. Optionally,
*
can be specified after the table name to explicitly
indicate that descendant tables are included.
alias
Asubstitute name for the
FROM
item containing the alias. An alias is used for brevity or to
eliminate ambiguity for self-joins (where the same table is scanned multiple times). When an
alias is provided, it completelyhides the actual name of the table or function; for example given
FROM foo AS f
,the remainder of the
SELECT
must refer to this
FROM
item as
f
not
foo
.If
an alias is written, a column alias list can also be written to provide substitute names for one or
more columns of the table.
1581
VB.NET TIFF: Read, Edit & Process TIFF with VB.NET Image Document
with TIFF document at the page level, like TIFF page adding & deleting We are dedicated to provide powerful & profession imaging controls, PDF document, image
add photo to pdf for; add photo to pdf reader
C# Create PDF Library SDK to convert PDF from other file formats
What's more, you can also protect created PDF file by adding digital signature (watermark) on PDF using C# code. Create PDF from Jpeg, png, images.
adding an image to a pdf form; adding an image to a pdf
SELECT
select
Asub-
SELECT
can appear in the
FROM
clause. This acts as though its output were created as
atemporary table for the duration of this single
SELECT
command. Note that the sub-
SELECT
must be surrounded by parentheses, and an alias must be provided for it. A VALUES command
can also be used here.
with_query_name
A
WITH
query is referenced by writing its name, just as though the query’s name were a table
name. (In fact, the
WITH
query hides any real table of the same name for the purposes of the
primary query. If necessary, youcan refer to a real table of the same name by schema-qualifying
the table’s name.) An alias can be provided in the same way as for a table.
function_name
Function calls can appear in the
FROM
clause. (This is especially useful for functions that return
result sets, but any function can be used.) This acts as though the function’s output were cre-
ated as a temporary table for the duration of this single
SELECT
command. When the optional
WITH ORDINALITY
clause is added to the function call, a new column is appended after all the
function’s output columns with numbering for each row.
An alias can be provided in the same way as for a table. If an alias is written, a column alias
list can also be written to provide substitute names for one or more attributes of the function’s
composite return type, including the column added by
ORDINALITY
if present.
Multiple function calls can be combined into a single
FROM
-clause item by surrounding them
with
ROWS FROM( ... )
.The output of such an item is the concatenation of the first row from
each function, then the second row from each function, etc. If some of the functions produce
fewer rows than others, NULLs are substituted for the missing data, so that the total number of
rows returned is always the same as for the function that produced the most rows.
If the function has been definedas returning the
record
data type, then an alias or the key word
AS
must be present, followedbya column definition list inthe form
(
column_name data_type
[, ... ])
.The column definition list must match the actual number and types of columns
returned by the function.
Whenusingthe
ROWS FROM( ... )
syntax, if oneof the functions requires a columndefinition
list, it’s preferred to putthecolumn definitionlistafter thefunctioncallinside
ROWS FROM( ...
)
.A column definition list can be placed after the
ROWS FROM( ... )
constructonly if there’s
just a single function and no
WITH ORDINALITY
clause.
To use
ORDINALITY
together with a column definition list, you must use the
ROWS FROM( ...
)
syntaxand put the column definition list inside
ROWS FROM( ... )
.
join_type
One of
[ INNER ] JOIN
LEFT [ OUTER ] JOIN
RIGHT [ OUTER ] JOIN
FULL [ OUTER ] JOIN
CROSS JOIN
For the
INNER
and
OUTER
join types, a join condition must be specified, namely exactly one of
NATURAL
,
ON
join_condition
,or
USING (
join_column
[, ...])
.See belowfor the mean-
ing. For
CROSS JOIN
,none of these clauses can appear.
1582
VB.NET Word: How to Add Watermark to Word File Using VB.NET Demo
creator SDK to add watermark on PDF document file and VB.NET watermark adding control to Dim fileName2 As String = FolderName & "Watermark.png" Dim doc1
add a picture to a pdf; add picture to pdf document
C# TIFF: How to Insert & Burn Picture/Image into TIFF Document
TIFF Image Adding & Burning API in C#. REImage imge = new REImage(@"c:\ logo.png"); // add the image powerful & profession imaging controls, PDF document, tiff
adding image to pdf in preview; add jpg to pdf online
SELECT
A
JOIN
clause combines two
FROM
items, which for convenience we will refer to as “tables”,
though in reality they can be any type of
FROM
item. Use parentheses if necessary to determine
the order of nesting. In the absence of parentheses,
JOIN
snest left-to-right. In any case
JOIN
binds more tightly than the commas separating
FROM
-list items.
CROSS JOIN
and
INNER JOIN
produce a simple Cartesian product, the same result as you get
from listing the two tables at the top level of
FROM
,but restricted by the join condition (if any).
CROSS JOIN
is equivalent to
INNER JOIN ON (TRUE)
,that is, no rows are removed by qual-
ification. These join types are just a notational convenience, since they do nothing you couldn’t
do with plain
FROM
and
WHERE
.
LEFT OUTER JOIN
returns all rows in the qualified Cartesian product (i.e., all combined rows
that pass its join condition), plus one copy of each row in the left-hand table for which there was
noright-hand rowthatpassed the joincondition. This left-hand rowis extendedto the full width
of the joined table by inserting null values for the right-hand columns. Note that only the
JOIN
clause’s own condition is considered while decidingwhich rows have matches. Outer conditions
are applied afterwards.
Conversely,
RIGHT OUTER JOIN
returns all the joined rows, plus one row for each unmatched
right-hand row (extended with nulls on the left). This is just a notational convenience, since you
could convert it to a
LEFT OUTER JOIN
by switching the left and right tables.
FULL OUTER JOIN
returns all the joined rows, plus one row for each unmatched left-hand row
(extended with nulls on the right), plus one row for each unmatched right-hand row (extended
with nulls on the left).
ON
join_condition
join_condition
is an expression resulting in a value of type
boolean
(similar to a
WHERE
clause) that specifies which rows ina join are considered to match.
USING (
join_column
[, ...] )
A clause of the form
USING ( a, b, ... )
is shorthand for
ON left_table.a =
right_table.a AND left_table.b = right_table.b ...
. Also,
USING
implies that
only one of each pair of equivalent columns will be included in the join output, not both.
NATURAL
NATURAL
is shorthand for a
USING
list that mentions all columns in the two tables that have the
same names.
LATERAL
The
LATERAL
key word can precede a sub-
SELECT FROM
item. This allows the sub-
SELECT
to
refer to columns of
FROM
items that appear before it in the
FROM
list. (Without
LATERAL
,each
sub-
SELECT
is evaluated independently and so cannot cross-reference any other
FROM
item.)
LATERAL
can also precede a function-call
FROM
item, but in this case it is a noise word, because
the function expression can refer to earlier
FROM
items in any case.
A
LATERAL
item can appear at top level in the
FROM
list, or within a
JOIN
tree. In the latter case
it can also refer to any items that are on the left-hand side of a
JOIN
that it is on the right-hand
side of.
When a
FROM
item contains
LATERAL
cross-references, evaluation proceeds as follows: for each
row of the
FROM
item providing the cross-referenced column(s), or set of rows of multiple
FROM
items providing the columns, the
LATERAL
item is evaluated using that row or row set’s values
of the columns. The resulting row(s) are joined as usual withthe rows they were computed from.
This is repeated for each row or set of rows from the column source table(s).
1583
VB.NET TIFF: Add New Image to TIFF File in Visual Basic .NET
However, RasterEdge VB.NET TIFF document processing SDK can offer you the reliable and extensive TIFF page image adding tool that allows you to directly insert
add jpg to pdf; add photo to pdf
SELECT
Thecolumnsourcetable(s) mustbe
INNER
or
LEFT
joinedtothe
LATERAL
item, else there would
not be a well-definedsetof rows from which tocompute each set of rows for the
LATERAL
item.
Thus, although a construct such as
X
RIGHT JOIN LATERAL
Y
is syntactically valid, it is not
actually allowed for
Y
toreference
X
.
WHERE
Clause
The optional
WHERE
clause has the general form
WHERE
condition
where
condition
is any expression that evaluates to a result of type
boolean
.Any row that does
not satisfy this conditionwill be eliminatedfrom the output. Arow satisfies the condition if it returns
true whenthe actual row values are substituted for any variable references.
GROUP BY
Clause
The optional
GROUP BY
clause has the general form
GROUP BY
expression
[, ...]
GROUP BY
willcondenseinto asingle rowallselected rows that share the same values for the grouped
expressions.
expression
can be an input column name, or the name or ordinal number of an output
column (
SELECT
list item), or an arbitrary expression formed from input-column values. In case of
ambiguity, a
GROUP BY
name will be interpreted as an input-column name rather than an output
column name.
Aggregate functions, if any are used, are computed across all rows making up each group, producing
aseparate value for each group. (If there are aggregate functions but no
GROUP BY
clause, the query
is treated as having a single group comprising all the selected rows.) The set of rows fed to each
aggregate function can be further filteredby attachinga
FILTER
clause to the aggregate function call;
see Section 4.2.7 for more information. When a
FILTER
clause is present, only those rows matching
it are included in the input to that aggregate function.
When
GROUP BY
is present, or any aggregate functions are present, it is not valid for the
SELECT
list
expressions to refer to ungrouped columns except within aggregate functions or when the ungrouped
column is functionally dependent onthe grouped columns, since there would otherwise be more than
one possible value to return for an ungrouped column. Afunctional dependency exists if the grouped
columns (or a subset thereof) are the primary key of the table containing the ungroupedcolumn.
Keep in mind that all aggregate functions are evaluated before evaluating any “scalar” expressions in
the
HAVING
clause or
SELECT
list. This means that, for example, a
CASE
expression cannot be used
to skip evaluation of an aggregate function; see Section 4.2.14.
Currently,
FOR NO KEY UPDATE
,
FOR UPDATE
,
FOR SHARE
and
FOR KEY SHARE
cannot be spec-
ified with
GROUP BY
.
1584
SELECT
HAVING
Clause
The optional
HAVING
clause has the general form
HAVING
condition
where
condition
is the same as specified for the
WHERE
clause.
HAVING
eliminates group rows that do not satisfy the condition.
HAVING
is different from
WHERE
:
WHERE
filters individual rows before the application of
GROUP BY
,while
HAVING
filters group rows
created by
GROUP BY
. Each column referenced in
condition
must unambiguously reference a
grouping column, unless the reference appears within an aggregate function or the ungrouped col-
umn is functionally dependent on the grouping columns.
The presenceof
HAVING
turns a query intoa grouped query evenif there is no
GROUP BY
clause. This
is the same as what happens when the query contains aggregate functions but no
GROUP BY
clause.
All the selected rows are considered to form a single group, and the
SELECT
list and
HAVING
clause
can only reference table columns from within aggregate functions. Such a query will emit a single
row if the
HAVING
condition is true, zero rows if it is not true.
Currently,
FOR NO KEY UPDATE
,
FOR UPDATE
,
FOR SHARE
and
FOR KEY SHARE
cannot be spec-
ified with
HAVING
.
WINDOW
Clause
The optional
WINDOW
clause has the general form
WINDOW
window_name
AS (
window_definition
) [, ...]
where
window_name
is a name that can be referenced from
OVER
clauses or subsequent window
definitions, and
window_definition
is
[
existing_window_name
]
[ PARTITION BY
expression
[, ...] ]
[ ORDER BY
expression
[ ASC | DESC | USING
operator
] [ NULLS { FIRST | LAST } ] [, ...] ]
[
frame_clause
]
If an
existing_window_name
is specified it must refer to an earlier entry in the
WINDOW
list; the
newwindow copies its partitioningclause from that entry, as well as its ordering clause if any. In this
case the new window cannot specify its own
PARTITION BY
clause, and it can specify
ORDER BY
only if the copied windowdoes not have one. The newwindow always uses its own frame clause; the
copied window must not specify a frame clause.
The elements of the
PARTITION BY
list are interpreted in much the same fashion as elements of a
GROUP BY Clause, except that they are always simple expressions and never the name or number of
an output column. Another difference is that these expressions can contain aggregate function calls,
which are not allowed in a regular
GROUP BY
clause. They are allowed here because windowing
occurs after grouping and aggregation.
Similarly, the elements of the
ORDER BY
list are interpreted in much the same fashion as elements of
an ORDER BY Clause, except that the expressions are always taken as simple expressions and never
the name or number of an output column.
The optional
frame_clause
defines the window frame for window functions that depend on the
frame (not all do). The window frame is a set of related rows for each row of the query (called the
current row). The
frame_clause
can be one of
1585
SELECT
{ RANGE | ROWS }
frame_start
{ RANGE | ROWS } BETWEEN
frame_start
AND
frame_end
where
frame_start
and
frame_end
can be one of
UNBOUNDED PRECEDING
value
PRECEDING
CURRENT ROW
value
FOLLOWING
UNBOUNDED FOLLOWING
If
frame_end
is omitted it defaults to
CURRENT ROW
.Restrictions are that
frame_start
cannot
be
UNBOUNDED FOLLOWING
,
frame_end
cannot be
UNBOUNDED PRECEDING
,and the
frame_end
choice cannot appear earlier in the above list than the
frame_start
choice — for example
RANGE
BETWEEN CURRENT ROW AND
value
PRECEDING
is not allowed.
The default framing option is
RANGE UNBOUNDED PRECEDING
, which is the same as
RANGE
BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
;it sets the frame to be all rows from the
partition start up through the current row’s last peer (a row that
ORDER BY
considers equivalent to
the current row, or all rows if there is no
ORDER BY
). In general,
UNBOUNDED PRECEDING
means
that the frame starts with the first row of the partition, and similarly
UNBOUNDED FOLLOWING
means
that the frame ends with the last row of the partition (regardless of
RANGE
or
ROWS
mode). In
ROWS
mode,
CURRENT ROW
means that the frame starts or ends with the current row; but in
RANGE
mode it
means that the frame starts or ends with the current row’s first or last peer in the
ORDER BY
ordering.
The
value PRECEDING
and
value FOLLOWING
cases are currently only allowed in
ROWS
mode.
They indicate that the frame starts or ends with the row that many rows before or after the current
row.
value
must be an integer expression not containing any variables, aggregate functions, or
window functions. The value must not be null or negative; but it can be zero, which selects the
current row itself.
Beware that the
ROWS
options can produce unpredictable results if the
ORDER BY
ordering does not
order the rows uniquely. The
RANGE
options are designed to ensure that rows that are peers in the
ORDER BY
ordering are treated alike; all peer rows will be in the same frame.
The purpose of a
WINDOW
clause is to specify the behavior of window functions appearing in the
query’s SELECT List or ORDER BY Clause. These functions can reference the
WINDOW
clause en-
tries by name in their
OVER
clauses. A
WINDOW
clause entry does nothave to be referencedanywhere,
however; if itis notused in the queryit is simply ignored. It is possible touse window functions with-
out any
WINDOW
clause at all, since a window function call can specify its window definition directly
in its
OVER
clause. However, the
WINDOW
clause saves typing when the same window definition is
needed for more than one window function.
Currently,
FOR NO KEY UPDATE
,
FOR UPDATE
,
FOR SHARE
and
FOR KEY SHARE
cannot be spec-
ified with
WINDOW
.
Window functions are described in detail in Section 3.5, Section 4.2.8, and Section 7.2.4.
SELECT
List
The
SELECT
list (betweenthe keywords
SELECT
and
FROM
)specifiesexpressions that form theoutput
rows of the
SELECT
statement. The expressions can (and usually do) refer to columns computed in
the
FROM
clause.
Just as in a table, every output columnof a
SELECT
has a name. In a simple
SELECT
this name is just
used to label the column for display, but when the
SELECT
is a sub-query of a larger query, the name
is seen by the larger query as the column name of the virtual table produced by the sub-query. To
1586
SELECT
specify the name to use for an output column, write
AS output_name
after the column’s expression.
(You can omit
AS
,but only if the desired output name does not match any PostgreSQL keyword (see
Appendix C). For protection against possible future keyword additions, it is recommended that you
always either write
AS
or double-quote the outputname.) If you do notspecify acolumn name, aname
is chosenautomatically by PostgreSQL. If the column’s expressionis a simple column reference then
the chosen name is the same as that column’s name. In more complex cases a function or type name
may be used, or the system may fall back on a generated name such as
?column?
.
An output column’s name can be used to refer to the column’s value in
ORDER BY
and
GROUP BY
clauses, but not in the
WHERE
or
HAVING
clauses; there you must write out the expression instead.
Instead of an expression,
*
can be written in the output list as a shorthand for all the columns of the
selected rows. Also, you can write
table_name
.
*
as a shorthand for the columns coming from just
that table. In these cases it is not possible to specify new names with
AS
;the output column names
will be the same as the table columns’ names.
DISTINCT
Clause
If
SELECT DISTINCT
is specified, all duplicate rows are removed from the result set (one row is
kept from each group of duplicates).
SELECT ALL
specifies the opposite: all rows are kept; that is the
default.
SELECT DISTINCT ON (
expression
[, ...] )
keeps only the first row of each set of rows
where the given expressions evaluate to equal. The
DISTINCT ON
expressions are interpreted using
the same rules as for
ORDER BY
(see above). Note that the “first row” of each set is unpredictable
unless
ORDER BY
is usedto ensure that the desired row appears first. For example:
SELECT DISTINCT ON (location) location, time, report
FROM weather_reports
ORDER BY location, time DESC;
retrieves the most recent weather report for each location. But if we had not used
ORDER BY
to force
descending order of time values for each location, we’d have gotten a report from an unpredictable
time for each location.
The
DISTINCT ON
expression(s) must match the leftmost
ORDER BY
expression(s). The
ORDER BY
clause will normally contain additional expression(s) that determine the desired precedence of rows
within each
DISTINCT ON
group.
Currently,
FOR NO KEY UPDATE
,
FOR UPDATE
,
FOR SHARE
and
FOR KEY SHARE
cannot be spec-
ified with
DISTINCT
.
UNION
Clause
The
UNION
clause has this general form:
select_statement
UNION [ ALL | DISTINCT ]
select_statement
select_statement
is any
SELECT
statement without an
ORDER BY
,
LIMIT
,
FOR NO KEY
UPDATE
,
FOR UPDATE
,
FOR SHARE
, or
FOR KEY SHARE
clause. (
ORDER BY
and
LIMIT
can be
attached to a subexpression if it is enclosed in parentheses. Without parentheses, these clauses will
be taken to apply to the result of the
UNION
,not to its right-hand input expression.)
The
UNION
operator computes the set union of the rows returned by the involved
SELECT
statements.
Arow is in the set union of two result sets if it appears in at least one of the result sets. The two
1587
Documents you may be interested
Documents you may be interested