Data Access and Change
108
catalog, schema, database object
catalog, schema, table, column
correlation name, column
Examples of identifier chain are given below:
SELECT MYCAT.MYSCHEMA.MYTABLE.MYCOL FROM MYCAT.MYSCHEMA.MYTABLE
DROP TABLE MYCAT.MYSCHEMA.MYTABLE CASCADE
ALTER SEQUENCE MYCAT.MYSCHEMA.MYSEQUENCE RESTART WITH 100
column reference
column reference
<column reference> ::= <basic identifier chain> | MODULE <period> <qualified
identifier> <period> <column name>
Reference a column or a routine variable.
SQL parameter reference
SQL parameter reference
<SQL parameter reference> ::= <basic identifier chain>
Reference an SQL routine parameter.
contextually typed value specification
contextually typed value specification
<contextually typed value specification> ::= <null specification> | <default
specification>
<null specification> ::= NULL
<default specification> ::= DEFAULT
Specify a value whose data type or value is inferred from its context.
DEFAULT is used for assignments to table columns that have a default value, or to table columns that are generated
either as an IDENTITY value or as an expression.
NULL can be used only in a context where the type of the value is known. For example, a NULL can be assigned to
a column of the table in an INSERT or UPDATE statement, because the type of the column is known. But if NULL
is used in a SELECT list, it must be used in a CAST statement.
Value Expression
Value expression is a general name for all expressions that return a value. Different types of expressions are allowed
in different contexts.
value expression primary
value expression primary
.Pdf printing in thumbnail size - SDK control project:C# PDF Thumbnail Create SDK: Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
.Pdf printing in thumbnail size - SDK control project:VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
Data Access and Change
109
<value  expression  primary>  ::=  <parenthesized  value  expression>  |
<nonparenthesized value expression primary>
<parenthesized value expression> ::= <left paren> <value expression> <right
paren>
<nonparenthesized value expression primary> ::= <unsigned value specification>
| <column reference> | <set function specification> | <scalar subquery> | <case
expression> | <cast specification> | <next value expression> | <current value
expression> | <routine invocation>
Specify a value that is syntactically self-delimited.
value specification
value specification
<value specification> ::= <literal> | <general value specification>
<unsigned  value  specification>  ::=  <unsigned  literal>  |  <general  value
specification>
<target  specification>  ::=  <host  parameter  specification>  |  <SQL  parameter
reference> | <column reference> | <dynamic parameter specification>
<simple target specification> ::= <host parameter specification> | <SQL parameter
reference> | <column reference> | <embedded variable name>
<host  parameter  specification>  ::=  <host  parameter  name>  [  <indicator
parameter> ]
<dynamic parameter specification> ::= <question mark>
Specify one or more values, host parameters, SQL parameters, dynamic parameters, or host variables.
row value expression
row value expression
<row  value expression>  ::=  <row value  special case>  |  <explicit row  value
constructor>
<row value predicand> ::= <row value special case> | <row value constructor
predicand>
<row value special case> ::= <nonparenthesized value expression primary>
<explicit row value constructor> ::= <left paren> <row value constructor element>
<comma> <row value constructor element list> <right paren> |
ROW <left paren> <row value constructor element list> <right paren> | <row
subquery>
Specify a row consisting of one or more elements. A comma separated list of expressions, enclosed in brackets, with the
optional keyword ROW. In SQL, a row containing a single element can often be used where a single value is expected.
set function specification
SDK control project:Create Thumbnail Winforms | Online Tutorials
For information about saving & printing images in Create Thumbnail; Generate Barcodes on Your Documents; Read Processing; RasterEdge OCR Engine; PDF Reading; Encode
www.rasteredge.com
SDK control project:VB.NET Image: Visual Basic .NET Guide to Draw Text on Image in .
can adjust the text font, font size, font type System.IO Imports System.Drawing.Printing Imports RasterEdge & profession imaging controls, PDF document, image
www.rasteredge.com
Data Access and Change
110
set function specification
<set function specification> ::= <aggregate function> | <grouping operation>
<grouping operation> ::= GROUPING <left paren> <column reference> [ { <comma>
<column reference> }... ] <right paren>
Specify a value derived by the application of a function to an argument. HyperSQL does not yet support <grouping
operation> .
COALESCE
coalesce expression
<coalesce expression> := COALESCE <left paren> <value expression> { <comma>
<value expression> }... <right paren>
Replace null values with another value. The coalesce expression has two or more instances of <value expression>. If
the first <value expression> evaluates to a non-null value, it is returned as the result of the coalesce expression. If it is
null, the next <value expression> is evaluated and if it evaluates to a non-non value, it is returned, and so on.
The type of the return value of a COALESCE expression is the aggregate type of the types of all the <value
expression> instances. Therefore, any value returned is implicitly cast to this type. HyperSQL also features built-
in functions with similar functionality.
NULLIF
nullif expression
<nullif expression> := NULLIF <left paren> <value expression> <comma> <value
expression> <right paren>
Return NULL if two values are equal. If the result of the first <value expression> is not equal to the result
of the second, then it is returned, otherwise NULL is returned. The type of the return value is the type of the first
<value expression>.
SELECT i, NULLIF(n, 'not defined') FROM t
CASE
case specification
<case specification> ::= <simple case> | <searched case>
<simple case> ::= CASE <case operand> <simple when clause>... [ <else clause> ]
END
<searched case> ::= CASE <searched when clause>... [ <else clause> ] END
<simple when clause> ::= WHEN <when operand list> THEN <result>
<searched when clause> ::= WHEN <search condition> THEN <result>
<else clause> ::= ELSE <result>
<case operand> ::= <row value predicand> | <overlaps predicate part 1>
SDK control project:XImage.Raster for .NET, Comprehensive .NET RasterImage SDK
resolution printing; More about Image Saving & Printing Create thumbnail directly in image. provide powerful & profession imaging controls, PDF document, image
www.rasteredge.com
SDK control project:VB.NET Image: How to Create Visual Basic .NET Windows Image Viewer
image, rotating and flipping an image, printing & saving including png, jpeg, gif, tiff, bmp, PDF, and Word You can accurately define the size and location of
www.rasteredge.com
Data Access and Change
111
<when operand list> ::= <when operand> [ { <comma> <when operand> }... ]
<when operand> ::= <row value predicand> | <comparison predicate part 2> |
<between predicate part 2> | <in predicate part 2> | <character like predicate
part 2> | <octet like predicate part 2> | <similar predicate part 2> | <regex like
predicate part 2> | <null predicate part 2> | <quantified comparison predicate
part 2> | <match predicate part 2> | <overlaps predicate part 2> | <distinct
predicate part 2>
<result> ::= <result expression> | NULL
<result expression> ::= <value expression>
Specify a conditional value. The result of a case expression is always a value. All the values introduced with THEN
must be of the same type or convertible to the same type.
Some simple examples of the CASE expression are given below. The first two examples return 'Britain', 'Germany',
or 'Other country' depending on the value of dialcode. The third example uses IN and smaller-than predicates.
CASE dialcode WHEN 44 THEN 'Britain' WHEN 49 THEN 'Germany' ELSE 'Other country' END
CASE WHEN dialcode=44 THEN 'Britain' WHEN dialcode=49 THEN 'Germany' WHEN dialcode < 0 THEN 'bad
dial code' ELSE 'Other country' END
CASE dialcode WHEN IN (44, 49,30) THEN 'Europe' WHEN IN (86,91,91) THEN 'Asia' WHEN < 0 THEN
'bad dial code' ELSE 'Other continent' END
The case statement can be far more complex and involve several conditions.
CAST
cast specification
<cast specification> ::=  CAST <left paren> <cast operand>  AS <cast target>
<right paren>
<cast operand> ::= <value expression> | <implicitly typed value specification>
<cast target> ::= <domain name> | <data type>
Specify a data conversion. Data conversion takes place automatically among variants of a general type. For example
numeric values are freely converted from one type to another in expressions.
Explicit type conversion is necessary in two cases. One case is to determine the type of a NULL value. The other
case is to force conversion for special purposes. Values of data types can be cast to a character type. The exception
is BINARY and OTHER types. The result of the cast is the literal expression of the value. Conversely, a value of
a character type can be converted to another type if the character value is a literal representation of the value in the
target type. Special conversions are possible between numeric and interval types, which are described in the section
covering interval types.
The examples below show examples of cast with their result:
CAST (NULL AS TIMESTAMP)
CAST ('   199  ' AS INTEGER) = 199
CAST ('tRue ' AS BOOLEAN) = TRUE
CAST (INTERVAL '2' DAY AS INTEGER) = 2
CAST ('1992-04-21' AS DATE) = DATE '1992-04-21'
NEXT VALUE FOR
SDK control project:VB.NET Image: How to Draw Annotation on Doc Images with Image SDK
and bmp) or documents (like multi-page TIFF, Microsoft Office Word and PDF file You can freely control the annotation shapes, the outline size (width and height
www.rasteredge.com
SDK control project:VB.NET Image: VB.NET Code to Create Watermark on Images in .NET
font type "Times New Roman", size "16", and style System.IO Imports System.Drawing. Printing Imports RasterEdge & profession imaging controls, PDF document, tiff
www.rasteredge.com
Data Access and Change
112
next value expression
<next value expression> ::= NEXT VALUE FOR <sequence generator name>
Return the next value of a sequence generator. This expression can be used as a select list element in queries, or in
assignments to table columns in data change statements. If the expression is used more than once in a single row that
is being evaluated, the same value is returned for each invocation. After evaluation of the particular row is complete,
the sequence generator will return a different value from the old value. The new value is generated by the sequence
generator by adding the increment to the last value it generated. In SQL syntax compatibility modes, variants of this
expression in different SQL dialects are supported. In the example below the expression is used in an insert statement:
INSERT INTO MYTABLE(COL1, COL2) VALUES 2, NEXT VALUE FOR MYSEQUENCE
CURRENT VALUE FOR
current value expression
<current value expression> ::= CURRENT VALUE FOR <sequence generator name>
Return the latest value that was returned by the NEXT VALUE FOR expression for a sequence generator in this session.
In the example below, the value that was generated by the sequence for the first insert, is reused for the second insert:
INSERT INTO MYTABLE(COL1, COL2) VALUES 2, NEXT VALUE FOR MYSEQUENCE;
INSERT INTO CHILDTABLE(COL1, COL2) VALUES 10, CURRENT VALUE FOR MYSEQUENCE;
value expression
value expression
<value expression> ::= <numeric value expression> | <string value expression>
| <datetime value expression> | <interval value expression> | <boolean value
expression> | <row value expression>
An expression that returns a value. The value can be a single value, or a row consisting more than one value.
numeric value expression
numeric value expression
<numeric value expression> ::= <term> | <numeric value expression> <plus sign>
<term> | <numeric value expression> <minus sign> <term>
<term> ::= <factor> | <term> <asterisk> <factor> | <term> <solidus> <factor>
<factor> ::= [ <sign> ] <numeric primary>
<numeric primary> ::= <value expression primary> | <numeric value function>
Specify a numeric value. The BNF indicates that <asterisk> and <solidus> (the operators for multiplication
and division) have precedence over <minus sign> and <plus sign>.
numeric value function
numeric value function
<numeric value function> ::= <position expression> | <extract expression> |
<length expression> ...
SDK control project:C# Image: How to Draw Text on Images within Rasteredge .NET Image
such as adjusting text font size, color, style and System.IO; using System.Drawing. Printing; using RasterEdge & profession imaging controls, PDF document, tiff
www.rasteredge.com
SDK control project:VB.NET Image: How to Create New Images Using VB.NET Codes in .NET
the complete VB.NET sample codes for printing a high settings like image color and size according to powerful & profession imaging controls, PDF document, tiff
www.rasteredge.com
Data Access and Change
113
Specify a function yielding a value of type numeric. The supported numeric value functions are listed and described
in the  Built In Functions  chapter.
string value expression
string value expression
<string value expression> ::= <string concatenation> | <string factor>
<string factor> ::= <value expression primary> | <string value function>
<string concatenation> ::= <string value expression> <concatenation operator>
<string factor>
<concatenation operator> ::= ||
Specify a character string value, a binary string value, or a bit string value. The BNF indicates that a string value
expression can be formed by concatenation of two or more <value expression primary>. The types of the
<value expression primary> elements must be compatible, that is, all must be string, or binary or bit string
values.
character value function
string value function
<string value function> ::= ...
Specify a function that returns a character string or binary string. The supported character value functions are listed
and described in the  Built In Functions  chapter.
datetime value expression
datetime value expression
<datetime value expression> ::= <datetime term> | <interval value expression>
<plus sign> <datetime term> | <datetime value expression> <plus sign> <interval
term> | <datetime value expression> <minus sign> <interval term>
<datetime term> ::= <datetime factor>
<datetime factor> ::= <datetime primary> [ <time zone> ]
<datetime primary> ::= <value expression primary> | <datetime value function>
<time zone> ::= AT <time zone specifier>
<time zone specifier> ::= LOCAL | TIME ZONE <interval primary>
Specify a datetime value. Details are described in the  SQL Language  chapter.
datetime value function
datetime value function
<datetime value function> ::= ...
Specify a function that returns a datetime value. The supported datetime value functions are listed and described in
the  Built In Functions  chapter.
SDK control project:VB.NET Image: Web Image and Document Viewer Creation & Design
document pages with zero footprint and thumbnail preview support Basic project is capable of printing current image toolkit to print bitonal images, PDF, and so
www.rasteredge.com
SDK control project:VB.NET Image: Compress & Decompress Document Image; RasterEdge .
System.IO Imports System.Drawing.Printing Imports RasterEdge decompressing: reduce Word document size according to Scanned PDF encoding and decoding: compress a
www.rasteredge.com
Data Access and Change
114
interval term
interval value expression
<interval value expression> ::= <interval term> | <interval value expression
1> <plus sign> <interval term 1> | <interval value expression 1> <minus sign>
<interval  term  1>  |  <left  paren>  <datetime  value  expression>  <minus  sign>
<datetime term> <right paren> <interval qualifier>
<interval term> ::= <interval factor> | <interval term 2> <asterisk> <factor>
| <interval term 2> <solidus> <factor> | <term> <asterisk> <interval factor>
<interval factor> ::= [ <sign> ] <interval primary>
<interval primary> ::= <value expression primary> [ <interval qualifier> ] |
<interval value function>
<interval value expression 1> ::= <interval value expression>
<interval term 1> ::= <interval term>
<interval term 2> ::= <interval term>
Specify an interval value. Details are described in the  SQL Language  chapter.
interval absolute value function
interval value function
<interval value function> ::= <interval absolute value function>
<interval  absolute  value  function>  ::=  ABS  <left  paren>  <interval  value
expression> <right paren>
Specify a function that returns the absolute value of an interval. If the interval is negative, it is negated, otherwise
the original value is returned.
boolean value expression
boolean value expression
<boolean value expression> ::= <boolean term> | <boolean value expression> OR
<boolean term>
<boolean term> ::= <boolean factor> | <boolean term> AND <boolean factor>
<boolean factor> ::= [ NOT ] <boolean test>
<boolean test> ::= <boolean primary> [ IS [ NOT ] <truth value> ]
<truth value> ::= TRUE | FALSE | UNKNOWN
<boolean primary> ::= <predicate> | <boolean predicand>
<boolean  predicand>  ::=  <parenthesized  boolean  value  expression>  |
<nonparenthesized value expression primary>
Data Access and Change
115
<parenthesized  boolean  value  expression>  ::=  <left  paren>  <boolean  value
expression> <right paren>
Specify a boolean value.
Predicates
Predicates are conditions with two sides and evaluate to a boolean value. The left side of the predicate, the <row
value predicand>, is the common element of all predicates. This element is a generalisation of both <value
expression>, which is a scalar, and of <explicit row value constructor>, which is a row. The two
sides of a predicate can be split in CASE statements where the <row value predicand> is part of multiple
predicates.
The number of fields in all <row value predicand> used in predicates must be the same and the types of the
fields in the same position must be compatible for comparison. If either of these conditions does not hold, an exception
is raised. The number of fields in a row is called the degree.
In many types of predicates (but not all of them), if the <row value predicand> evaluates to NULL, the result
of the predicate is UNKNOWN. If the <row value predicand> has more than one element, and one or more
of the fields evaluate to NULL, the result depends on the particular predicate.
comparison predicand
comparison predicate
<comparison predicate> ::= <row value predicand> <comp op> <row value predicand>
<comp op> ::= <equals operator> | <not equals operator> | <less than operator>
| <greater than operator> | <less than or equals operator> | <greater than or
equals operator>
Specify a comparison of two row values. If either <row value predicand> evaluates to NULL, the result of
<comparison predicate> is UNKNOWN. Otherwise, the result is TRUE, FALSE or UNKNOWN.
If the degree of <row value predicand> is larger than one, comparison is performed between each field and
the corresponding field in the other <row value predicand> from left to right, one by one.
When comparing two elements, if either field is NULL then the result is UNKNOWN.
For <equals operator>, if the result of comparison is TRUE for all field, the result of the predicate is TRUE. If
the result of comparison is FALSE for one field, the result of predicate is FALSE. Otherwise the result is UNKNOWN.
The <not equals  operator> is translated to NOT (<row  value predicand>  = <row  value
predicand>).
The <less than or equals operator> is translated to (<row value predicand> = <row value
predicand>) OR (<row value predicand> < <row value predicand>). The <greater than
or equals operator> is translated similarly.
For the <less than operator> and <greater than operator>, if two fields at a given position are
equal, then comparison continues to the next field. Otherwise, the result of the last performed comparison is returned
as the result of the predicate. This means that if the first field is NULL, the result is always UNKNOWN.
The logic that governs NULL values and UNKNOWN result is as follows: Suppose the NULL values were substituted
by arbitrary real values. If substitution cannot change the result of the predicate, then the result is TRUE or FALSE,
based on the existing non-NULL values, otherwise the result of the predicate is UNKNOWN.
Data Access and Change
116
The examples of comparison given below use literals, but the literals actually represent the result of evaluation of
some expression.
((1, 2, 3, 4) = (1, 2, 3, 4)) IS TRUE
((1, 2, 3, 4) = (1, 2, 3, 5)) IS FALSE
((1, 2, 3, 4) < (1, 2, 3, 4)) IS FALSE
((1, 2, 3, 4) < (1, 2, 3, 5)) IS TRUE
((NULL, 1, NULL) = (NULL, 1, NULL)) IS UNKNOWN  
((NULL, 1, NULL) = (NULL, 2, NULL)) IS FALSE  
((NULL, 1, NULL) <> (NULL, 2, NULL)) IS TRUE  
((NULL, 1, 2) <all operators> (NULL, 1, 2)) IS UNKNOWN
((1, NULL, ...) < (1, 2, ...)) IS UNKNOWN  
((1, NULL, ...) < (2, NULL, ...)) IS TRUE
((2, NULL, ...) < (1, NULL, ...)) IS FALSE
BETWEEN
between predicate
<between predicate> ::= <row value predicand> <between predicate part 2>
<between predicate part 2> ::= [ NOT ] BETWEEN [ ASYMMETRIC | SYMMETRIC ] <row
value predicand> AND <row value predicand>
Specify a range comparison. The default is ASYMMETRIC. The expression X BETWEEN Y AND Z is equivalent to
(X >= Y AND X <= Z). Therefore if Y > Z, the BETWEEN expression is never true. The expression X BETWEEN
SYMMETRIC Y AND Z is equivalent to (X >= Y AND X <= Z) OR (X >= Z AND X <= Y). The
expression Z NOT BETWEEN ... is equivalent to NOT (Z BETWEEN ...). If any of the three <row value
predicand> evaluates to NULL, the result is UNKNOWN.
IN
in predicate
<in predicate> ::= <row value predicand> [ NOT ] IN <in predicate value>
<in predicate value> ::= <table subquery> | <left paren> <in value list> <right
paren>
| <left paren> UNNEST <left paren> <array value expression> <right paren> <right
paren>
<in  value  list>  ::=  <row  value  expression>  [  {  <comma>  <row  value
expression> }... ]
Specify a quantified comparison. The expression X NOT IN Y is equivalent to NOT (X IN Y). The ( <in
value list> ) is converted into a table with one or more rows. The expression X IN Y is equivalent to X =
ANY Y, which is a <quantified comparison predicate>.
If the <table subquery> returns no rows, the result is FALSE. Otherwise the <row value predicand> is
compared one by one with each row of the <table subquery>.
If the comparison is TRUE for at least one row, the result is TRUE. If the comparison is FALSE for all rows, the result
is FALSE. Otherwise the result is UNKNOWN.
HyperSQL supports an extension to the SQL Standard to allow an array to be used in the <in predicate value>. This is
intended to be used with prepared statements where a variable length array of values can be used as the parameter value
Data Access and Change
117
for each call. The example below shows how this is used in SQL. The JDBC code must create a new java.sql.Array
object that contains the values and set the parameter with this array.
SELECT * FROM customer WHERE firstname IN ( UNNEST(?) )
Connection conn;
PreparedStatement ps;
// conn and ps are instantiated here
Array arr = conn.createArrayOf("INTEGER", new Integer[] {1, 2, 3});
ps.setArray(1, arr);
ResultSet rs = ps.executeQuery();
LIKE
like predicate
<like predicate> ::= <character like predicate> | <octet like predicate>
<character like predicate> ::= <row value predicand> [ NOT ] LIKE <character
pattern> [ ESCAPE <escape character> ]
<character pattern> ::= <character value expression>
<escape character> ::= <character value expression>
<octet like predicate> ::= <row value predicand> [ NOT ] LIKE <octet pattern>
[ ESCAPE <escape octet> ]
<octet pattern> ::= <binary value expression>
<escape octet> ::= <binary value expression>
Specify a pattern-match comparison for character or binary strings. The <row value predicand> is always
a <string value expression> of character or binary type. The <character pattern> or <octet
pattern> is a <string value expression> in which the underscore and percent characters have special
meanings. The underscore means match any one character, while the percent means match a sequence of zero or more
characters. The <escape character> or <escape octet> is also a <string value expression> that
evaluates to a string of exactly one character length. If the underscore or the percent is required as normal characters
in the pattern, the specified <escape character> or <escape octet> can be used in the pattern before the
underscore or the percent. The <row value predicand> is compared with the <character pattern> and
the result of comparison is returned. If any of the expressions in the predicate evaluates to NULL, the result of the
predicate is UNKNOWN. The expression A NOT LIKE B is equivalent to NOT (A LIKE B). If the length of the
escape is not 1 or it is used in the pattern not immediately before an underscore or a percent character, an exception
is raised.
IS NULL
null predicate
<null predicate> ::= <row value predicand> IS [ NOT ] NULL
Specify a test for a null value. The expression X IS NOT NULL is NOT equivalent to NOT (X IS NULL)if the
degree of the <row value predicand> is larger than 1. The rules are: If all fields are null, X IS NULL is TRUE
and X IS NOT NULL is FALSE. If only some fields are null, both X IS NULL and X IS NOT NULL are FALSE.
If all fields are not null, X IS NULL is FALSE and X IS NOT NULL is TRUE.
ALL and ANY
Documents you may be interested
Documents you may be interested