Introduction

Many of IBM’s database customers and independent software vendors have expressed interest in writing portable applications across multiple platforms. IBM® is committed to delivering SQL commonality, on database platforms implementing the Common SQL Engine, in a way that is common and portable and supports the ANSI/ISO SQL standards. These customers’ application developers have asked us to provide them with a list of common SQL language capabilities as a quick reference.

Db2 is now the brand name for all of IBM’s hybrid data management offerings, including products previously named dashDB. IBM Db2® and IBM Big SQL are designed with compatible SQL. Applications that access data stored on these products using compatible SQL via one of the IBM data server drivers should operate without change against data stored on the rest of the products. Specific detail and factors affecting compatibility are noted in the tables.

A feature might not be available on all common SQL engine products on exactly the same date. In some cases, this is only because the different Db2 products ship on slightly different schedules. In other cases, this is because customer requirements can accelerate development of an SQL feature on a specific Db2 product.

This summary version of the common SQL application features is intended to be a quick reference and includes the frequently used features and functions across the platforms. For more detailed information, consult the SQL Reference for cross-platform development (PDF 4.2 MB) and the respective IBM SQL product SQL Reference books. Read the disclaimer before using the tables.

Disclaimer

  • This list is not necessarily complete. The selected features shown here are based on frequent customer interest. You might find other features when you reference SQL language Reference books for these products in detail.
  • This list is not intended to be a feature and function list for any of the Db2 products. A feature might already exist in one platform but in the process of rolling out on other Db2 platforms because new functionality is released all the time.
  • In general, Big SQL compatibility, guided by the constraints of the underlying Hadoop ecosystem, is focused on SELECT and does not offer full ACID transactional support.
  • Beyond the core SQL syntax, you need to consider the surrounding operating environment, including the collation, isolation level, and datatype.
  • Use the latest generally available product level for the greatest compatibility.

Products included

  • IBM Db2 Version 11.1
  • IBM Db2 Warehouse
  • IBM Big SQL Version 4.2

Key

Y Product includes full support.
P Product includes partial support compared with other Common SQL Engine products; check product information.

Basic elements

Language element Db2 Db2 Warehouse Big SQL Notes
Identifiers – Ordinary Y Y Y
Identifiers – Delimited Y Y Y
Identifiers with support of lowercase letters and trailing underscores Y Y Y
Casting of Data Types – Implicit P P P Db2 does not support implicit casting of LOBs to or from non-string types.
Automatic data conversion based on code page Y Y Y
Constants Y Y Y
Hex specification of character constants Y Y Y
Null values Y Y Y
Column references Y Y Y
Host Variable References Y Y Y
Indicator variables Y Y Y
Extended indicator variables Y Y Y
Host Structures Y Y Y
“Friendly” arithmetic and conversion Y Y Y
Function invocation Y Y Y
Function invocation with named arguments Y Y Y
Arithmetic operators Y Y Y
bitwise operators Y Y Y
String Concatenation Y Y Y
Scalar subselect as expression Y Y Y
Scalar fullselect as expression Y Y Y
Date/Time Arithmetic Y Y Y
CASE expression Y Y Y
CAST specification Y Y Y
:: cast operator Y Y Y
XMLCAST specification Y Y Y
ROW CHANGE expression Y Y Y
Sequence reference (NEXT VALUE and PREVIOUS VALUE) Y Y Y
OLAP ranking specification (RANK, DENSE_RANK) Y Y Y
OLAP ranking specification (PERCENT_RANK) Y Y Y
OLAP numbering specification (ROW_NUMBER) Y Y Y
OLAP ordered specification (LAG, LEAD) Y Y Y
OLAP aggregate function specification (CUME_DIST) Y Y Y
OLAP aggregate function specification (FIRST_VALUE, LAST_VALUE) Y Y Y
OLAP aggregate function specification (NTH_VALUE) Y Y Y
OLAP aggregate function specification (NTILE) Y Y Y
OLAP aggregate function specification (RATIO_TO_REPORT) Y Y Y
OLAP aggregation specification Y Y Y
Untyped parameter markers Y Y Y
Untyped NULL Y Y Y
Untyped DEFAULT Y Y Y
Flag product extensions to standard SQL P P P Db2 only supports flagging against SQL92 entry level SQL syntax.
Diagnostic Area Y Y Y
SQLSTATE Y Y Y
SQLCODE Y Y Y
Descriptor Area Y Y Y

Data types

Language element Db2 Db2 Warehouse Big SQL Notes
SMALLINT Y Y Y
INT2 Y P
INTEGER Y Y Y
INT4 Y Y
BIGINT Y Y Y
INT8 Y Y
DECIMAL Y Y Y
NUMERIC Y Y Y
REAL Y Y Y For portability across platforms, do not use FLOAT(n).
FLOAT4 Y Y
DOUBLE or FLOAT Y Y Y For portability across platforms, do not use FLOAT(n).
FLOAT8 Y Y
DECFLOAT Y Y P In Big SQL, DECFLOAT data types can be used in most SQL constructs, except in Hadoop and HBase tables since this type is not supported in the Hadoop ecosystem.
CHARACTER Y Y Y
VARCHAR Y Y Y
FOR BIT DATA with CHAR or VARCHAR Y Y Y
CLOB Y Y P
FOR SBCS or MIXED DATA with CHAR, VARCHAR, or CLOB P P P
NCHAR P P
NVARCHAR P P
NCLOB P P
BINARY Y Y P For Hadoop and HBase tables, BINARY data type is a synonym for VARBINARY. There is no fixed length BINARY type in Hadoop.
VARBINARY Y Y P
BLOB Y Y P
GRAPHIC Y Y
VARGRAPHIC Y Y
DBCLOB Y Y
DATE Y Y Y
TIME Y Y P In Big SQL, TIME data types can be used in most SQL constructs, except in Hadoop and HBase tables since this type is not supported in the Hadoop ecosystem.
TIMESTAMP Y Y Y
TIMESTAMP with fractional seconds precision 0 to 12 Y Y P In Big SQL, the maximum fractional seconds precision is 9.
XML Y Y P In Big SQL, XML data types can be used in most SQL constructs, except in Hadoop and HBase tables since this type is not supported in the Hadoop ecosystem.
BOOLEAN Y Y P
BPCHAR P P P
User-defined distinct types Y Y Y
User-defined ordinary array types Y Y Y
User-defined associative array types Y Y Y
User-defined cursor types Y Y Y
User-defined row types Y Y Y
User-defined reference types Y Y Y
User-defined structured types Y Y Y

Special registers

Language element Db2 Db2 Warehouse Big SQL Notes
CURRENT CLIENT_ACCTNG Y Y Y
CURRENT CLIENT_APPLNAME Y Y Y
CURRENT CLIENT_USERID Y Y Y
CURRENT CLIENT_WRKSTNNAME Y Y Y
CURRENT DATE or CURRENT_DATE Y Y Y
CURRENT DBPARTITIONNUM Y Y Y
CURRENT DECFLOAT ROUNDING MODE Y Y Y
CURRENT DEFAULT TRANSFORM GROUP Y Y Y
CURRENT DEGREE Y Y Y
CURRENT EXPLAIN MODE Y Y Y
CURRENT EXPLAIN SNAPSHOT Y Y Y
CURRENT FEDERATED ASYNCHRONY Y Y Y
CURRENT IMPLICIT XMLPARSE OPTION Y Y Y
CURRENT ISOLATION Y Y Y
CURRENT LOCALE LC_MESSAGES Y Y Y
CURRENT LOCALE LC_TIME Y Y Y
CURRENT LOCK TIMEOUT Y Y Y
CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION Y Y Y
CURRENT MDC ROLLOUT MODE Y Y Y
CURRENT MEMBER Y Y Y
CURRENT NODE Y Y Y
CURRENT OPTIMIZATION PROFILE Y Y Y
CURRENT PACKAGE PATH Y Y Y
CURRENT PATH or CURRENT_PATH Y Y Y
CURRENT QUERY OPTIMIZATION Y Y Y
CURRENT REFRESH AGE Y Y Y
CURRENT SCHEMA or CURRENT_SCHEMA Y Y Y
CURRENT SERVER Y Y Y
CURRENT SQL_CCFLAGS Y Y Y
CURRENT TEMPORAL BUSINESS_TIME Y Y Y
CURRENT TEMPORAL SYSTEM_TIME Y Y Y
CURRENT TIME or CURRENT_TIME Y Y Y
CURRENT TIMESTAMP or CURRENT_TIMESTAMP Y Y Y
CURRENT TIMEZONE Y Y Y
CURRENT USER or CURRENT_USER Y Y Y
SESSION_USER Y Y Y
SYSTEM_USER Y Y Y
USER Y Y Y

Global variables

Language element Db2 Db2 Warehouse Big SQL Notes
CLIENT_HOST Y Y Y
CLIENT_IPADDR Y Y Y
CLIENT_ORIGUSERID Y Y Y
CLIENT_USRSECTOKEN Y Y Y
MON_INTERVAL_ID Y Y Y
PACKAGE_NAME Y Y Y
PACKAGE_SCHEMA Y Y Y
PACKAGE_VERSION Y Y Y
ROUTINE_MODULE Y Y Y
ROUTINE_SCHEMA Y Y Y
ROUTINE_SPECIFIC_NAME Y Y Y
ROUTINE_TYPE Y Y Y
TRUSTED_CONTEXT Y Y Y

Predicates

Language element Db2 Db2 Warehouse Big SQL Notes
Basic ( = (less-than> (less-than > (less-than= >= ) excluding LOB types and row value expressions Y Y Y
Basic ( = (less-than> (less-than > (less-than= >= ) LOB types P P P Db2 can compare LOB strings that have an actual length less than 32672 bytes.
Basic ( = (less-than> ) row value expressions Y Y Y
Basic ( (less-than > (less-than= >= ) row value expressions Y Y Y
Basic with scalar subselect right of comparison operator Y Y Y
Quantified (ALL, ANY or SOME) with single expression (no subquery) on left side and subselect on right side Y Y Y
ARRAY_EXISTS Y Y Y
BETWEEN (no scalar subqueries) Y Y Y
DISTINCT Y Y Y
EXISTS (subselect) Y Y Y
IN followed by list of expressions Y Y Y
IN followed by single column subselect Y Y Y
IS NULL and IS NOT NULL (no scalar subquery) Y Y Y
ISNULL and ISNOTNULL (no scalar subquery) Y Y Y
LIKE with host variable or string constant as pattern Y Y Y
LIKE with expression for pattern and escape Y Y Y
OVERLAPS Y Y Y
REGEXP_LIKE Y Y Y
TYPE Y Y Y
VALIDATED without specified XML schema Y Y Y
VALIDATED with specified XML schema Y Y Y
XMLEXISTS passing explicit variables Y Y Y
XMLEXISTS implicitly passing all columns Y Y Y

Aggregate functions

Language element Db2 Db2 Warehouse Big SQL Notes
ARRAY_AGG (ordinary array) Y Y Y
ARRAY_AGG (associative array) Y Y Y
AVG Y Y Y
CORRELATION or CORR Y Y Y
COUNT Y Y Y
COUNT_BIG Y Y Y
COVAR_POP Y Y Y
COVARIANCE or COVAR Y Y Y
COVARIANCE_SAMP or COVAR_SAMP Y Y Y
CUME_DIST Y Y Y
GROUPING Y Y Y
LISTAGG P P P Db2 does not support the ON OVERFLOW clause.
MAX Y Y Y
MEDIAN Y Y Y
MIN Y Y Y
PERCENTILE_CONT or PERCENTILE_DISC Y Y Y
PERCENT_RANK Y Y Y
REGR_AVGX Y Y Y
REGR_AVGY Y Y Y
REGR_COUNT Y Y Y
REGR_INTERCEPT or REGR_ICPT Y Y Y
REGR_R2 Y Y Y
REGR_SLOPE Y Y Y
REGR_SXX Y Y Y
REGR_SXY Y Y Y
REGR_SYY Y Y Y
STDDEV Y Y Y
STDDEV_POP Y Y Y
STDDEV_SAMP Y Y Y
SUM Y Y Y
VARIANCE or VAR Y Y Y
VARIANCE_POP or VAR_POP Y Y Y
VARIANCE_SAMP or VAR_SAMP Y Y Y
XMLAGG Y Y Y
XMLGROUP Y Y Y

Scalar functions

Language element Db2 Db2 Warehouse Big SQL Notes
ABSVAL or ABS Y Y Y
ACOS Y Y Y
ADD_DAYS Y Y Y
ADD_HOURS Y Y Y
ADD_MINUTES Y Y Y
ADD_MONTHS Y Y Y
ADD_SECONDS Y Y Y
ADD_YEARS Y Y Y
AGE Y Y Y
ARRAY_DELETE Y Y Y
ARRAY_FIRST Y Y Y
ARRAY_LAST Y Y Y
ARRAY_NEXT Y Y Y
ARRAY_PRIOR Y Y Y
ARRAY_TRIM Y Y Y
ASCII Y Y Y
ASIN Y Y Y
ATAN Y Y Y
ATAN2 Y Y Y
ATANH Y Y Y
BIGINT Y Y Y
BINARY Y Y Y
BIT Manipulation functions (BITAND, BITANDNOT, BITNOT, BITOR, BITXOR) Y Y Y
BLOB Y Y Y
BTRIM Y Y Y
CARDINALITY Y Y Y
CEIL or CEILING Y Y Y
CHAR (no string units) Y Y Y
CHARACTER_LENGTH or CHAR_LENGTH (no string units) Y Y Y
CHARACTER_LENGTH or CHAR_LENGTH with string units Y Y Y
CHR Y Y Y
CLOB (no string units) P P P
COALESCE (or VALUE) Y Y Y
COLLATION_KEY Y Y Y
COLLATION_KEY_BIT Y Y Y
COMPARE_DECFLOAT Y Y Y
CONCAT Y Y Y
CONTAINS Y Y Y
COS Y Y Y
COSH Y Y Y
COT Y Y Y
CURSOR_ROWCOUNT Y Y Y
DATAPARTITIONNUM Y Y Y
DATE Y Y Y
DATE_PART Y Y Y
DATE_TRUNC Y Y Y
DAY Y Y Y
DAYNAME Y Y Y
DAYOFMONTH Y Y Y
DAYOFWEEK Y Y Y
DAYOFWEEK_ISO Y Y Y
DAYOFYEAR Y Y Y
DAYS Y Y Y
DAYS_BETWEEN Y Y Y
DAYS_TO_END_OF_MONTH Y Y Y
DBCLOB (no string units) P P P
DBPARTITIONNUM (also see NODENUMBER) Y Y Y
DECFLOAT Y Y Y
DECFLOAT_FORMAT Y Y Y
DECIMAL or DEC Y Y Y
DECODE Y Y Y
DECRYPT_BIN Y Y Y Deprecated Db2 11.1.
DECRYPT_CHAR Y Y Y Deprecated Db2 11.1.
DEGREES Y Y Y
DEREF Y Y Y
DIFFERENCE Y Y Y
DIGITS Y Y Y
DOUBLE or DOUBLE_PRECISION Y Y Y
EMPTY_BLOB, EMPTY_CLOB, EMPTY_DBCLOB Y Y Y
ENCRYPT Y Y Y Deprecated Db2 11.1.
EVENT_MON_STATE Y Y Y
EXP Y Y Y
EXTRACT Y Y Y
FIRST_DAY Y Y Y
FLOAT Y Y Y
FLOOR Y Y Y
FROM_UTC_TIMESTAMP Y Y Y
GENERATE_UNIQUE Y Y Y
GETHINT Y Y Y Deprecated Db2 11.1.
GRAPHIC (no string units) P P P
GREATEST Y Y Y
HASH Y Y Y
HASH4 Y Y Y
HASH8 Y Y Y
HASHEDVALUE (also see PARTITION) Y Y Y
HEX Y Y Y
HEXTORAW Y Y Y
HOUR Y Y Y
HOURS_BETWEEN Y Y Y
IDENTITY_VAL_LOCAL Y Y Y
INITCAP Y Y Y
INSERT (no string units) P P P
INSERT with string units Y Y Y
INSTR (also see LOCATE_IN_STRING) Y Y Y
INSTR2 (also see LOCATE_IN_STRING) Y Y Y
INSTR4 (also see LOCATE_IN_STRING) Y Y Y
INSTRB (also see LOCATE_IN_STRING) Y Y Y
INTEGER or INT Y Y Y
INTNAND, INTNOR, INTNXOR, and INTNNOT Y Y Y
JULIAN_DAY Y Y Y
LAST_DAY Y Y Y
LCASE or LOWER Y Y Y
LCASE or LOWER (locale sensitive) Y Y Y
LEAST Y Y Y
LEFT (no string units) P P P
LEFT with string units Y Y Y
LENGTH (no string units) Y Y Y
LENGTH with string units Y Y Y
LENGTH2 Y Y Y
LENGTH4 Y Y Y
LENGTHB Y Y Y
LN Y Y Y
LOCATE (no string units) P P P
LOCATE with string units Y Y Y
LOCATE_IN_STRING or INSTR (no string units) P P P
LOCATE_IN_STRING or INSTR with string units Y Y Y
LOG Y Y Y
LOG10 Y Y Y
LPAD P P P Db2 has limited support for a CLOB argument.
LTRIM with 1 argument P P P Db2 has limited support for a CLOB argument.
LTRIM with 2 arguments P P P
MAX Y Y Y
MAX_CARDINALITY Y Y Y
MICROSECOND Y Y Y
MIDNIGHT_SECONDS Y Y Y
MIN Y Y Y
MINUTE Y Y Y
MINUTES_BETWEEN Y Y Y
MOD Y Y Y
MONTH Y Y Y
MONTHNAME Y Y Y
MONTHS_BETWEEN Y Y Y
MQPUBLISH Y Y
MQREAD with up to 2 arguments Y Y
MQREADCLOB with up to 2 arguments Y Y
MQRECEIVE Y Y
MQRECEIVECLOB Y Y
MQSEND Y Y
MQSUBSCRIBE Y Y
MQUNSUBSCRIBE Y Y
MULTIPLY_ALT Y Y Y
NCHAR Y Y Y
NCLOB Y Y Y
NEXT_DAY Y Y Y
NEXT_MONTH Y Y Y
NEXT_QUARTER Y Y Y
NEXT_WEEK Y Y Y
NEXT_YEAR Y Y Y
NODENUMBER Y Y Y
NORMALIZE_DECFLOAT Y Y Y
NOW Y Y Y
NULLIF Y Y Y
NVARCHAR Y Y Y
NVL Y Y Y
NVL2 Y Y Y
OCTET_LENGTH Y Y Y
OVERLAY (no string units) P P P
OVERLAY with string units Y Y Y
PARAMETER Y Y Y
PARTITION Y Y Y
POSITION (no string units) P P P
POSITION with string units Y Y Y
POSSTR Y Y Y
POW Y Y Y
POWER Y Y Y
QUANTIZE Y Y Y
QUARTER Y Y Y
RADIANS Y Y Y
RAISE_ERROR Y Y Y
RAND Y Y Y
RANDOM Y Y Y
RAWTOHEX Y Y Y
REAL Y Y Y
REC2XML Y Y Y
REGEXP_COUNT Y Y Y
REGEXP_EXTRACT Y Y Y
REGEXP_INSTR Y Y Y
REGEXP_MATCH_COUNT Y Y Y
REGEXP_REPLACE Y Y Y
REGEXP_SUBSTR Y Y Y
REPEAT Y Y Y
REPLACE P P P Db2 does not support LOB arguments.
REPLACE with 3rd argument optional P P P Db2 does not support LOB arguments.
RID Y Y Y
RID_BIT Y Y Y
RIGHT (no string units) P P P
RIGHT with string units Y Y Y
ROUND (numeric) Y Y Y
ROUND (numeric) with 2nd argument optional Y Y Y
ROUND (datetime) Y Y Y
ROUND_TIMESTAMP Y Y Y
RPAD P P P Db2 has limited support for a CLOB argument.
RTRIM with 1 argument P P P Db2 has limited support for a CLOB argument.
RTRIM with 2 arguments P P P Db2 has limited support for a CLOB argument.
SCORE Y Y Y
SECLABEL Y Y Y
SECLABEL_BY_NAME Y Y Y
SECLABEL_TO_CHAR Y Y Y
SECOND Y Y Y
SECONDS_BETWEEN Y Y Y
SIGN Y Y Y
SIN Y Y Y
SINH Y Y Y
SMALLINT Y Y Y
SOUNDEX Y Y Y
SPACE P P P Db2 support is limited to a length of 4000.
SQRT Y Y Y
STRIP Y Y Y
STRLEFT Y Y Y
STRPOS Y Y Y
STRRIGHT Y Y Y
SUBSTR Y Y Y
SUBSTR2 Y Y Y
SUBSTR4 Y Y Y
SUBSTRB Y Y Y
SUBSTRING (no string units) P P P
SUBSTRING with string units Y Y Y
TABLE_NAME Y Y Y
TABLE_SCHEMA Y Y Y
TAN Y Y Y
TANH Y Y Y
THIS_MONTH Y Y Y
THIS_QUARTER Y Y Y
THIS_WEEK Y Y Y
THIS_YEAR Y Y Y
TIME Y Y Y
TIMESTAMP Y Y Y
TIMESTAMPDIFF Y Y Y
TIMESTAMP_FORMAT Y Y Y
TIMESTAMP_ISO Y Y Y
TOTALORDER Y Y Y
TO_CHAR (character) Y Y Y
TO_CHAR (decfloat) Y Y Y
TO_CHAR (timestamp) Y Y Y
TO_CLOB Y Y Y
TO_DATE Y Y Y
TO_HEX Y Y Y
TO_NCHAR Y Y Y
TO_NCLOB Y Y Y
TO_NUMBER Y Y Y
TO_SINGLE_BYTE Y Y Y
TO_TIMESTAMP Y Y Y
TO_UTC_TIMESTAMP Y Y Y
TRANSLATE Y Y
TRIM P P P Db2 has limited support for a CLOB argument.
TRIM_ARRAY Y Y Y
TRUNCATE or TRUNC (datetime) Y Y Y
TRUNCATE or TRUNC (numeric) with 2nd argument optional Y Y Y
TRUNCATE or TRUNC (numeric) Y Y Y
TRUNC_TIMESTAMP Y Y Y
TYPE_ID Y Y Y
TYPE_NAME Y Y Y
TYPE_SCHEMA Y Y Y
UCASE or UPPER Y Y Y
UCASE or UPPER (locale sensitive) Y Y Y
VALUE Y Y Y
VARBINARY Y Y Y
VARCHAR (no string units) Y Y Y
VARCHAR_BIT_FORMAT Y Y Y
VARCHAR_FORMAT (character) Y Y Y
VARCHAR_FORMAT (decfloat) Y Y Y
VARCHAR_FORMAT (timestamp) Y Y Y
VARCHAR_FORMAT_BIT Y Y Y
VARGRAPHIC (no string units) P P P
VERIFY_GROUP_FOR_USER Y Y Y
VERIFY_ROLE_FOR_USER Y Y Y
VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER Y Y Y
WEEK Y Y Y
WEEKS_BETWEEN Y Y Y
WEEK_ISO Y Y Y
WIDTH_BUCKET Y Y Y
WRAP Y Y Y
XML2CLOB Y Y Y
XMLATTRIBUTES Y Y Y
XMLCOMMENT Y Y Y
XMLCONCAT Y Y Y
XMLDOCUMENT Y Y Y
XMLELEMENT Y Y Y
XMLFOREST Y Y Y
XMLNAMESPACES Y Y Y
XMLPARSE Y Y Y
XMLPI Y Y Y
XMLQUERY passing named variables Y Y Y
XMLQUERY implicitly passing all columns Y Y Y
XMLROW Y Y Y
XMLSERIALIZE Y Y Y
XMLTEXT Y Y Y
XMLVALIDATE Y Y Y
XMLXSROBJECTID Y Y Y
XSLTRANSFORM Y Y Y
YEAR Y Y Y
YEARS_BETWEEN Y Y Y
YMD_BETWEEN Y Y Y

Table functions

Language element Db2 Db2 Warehouse Big SQL Notes
BASE_TABLE Y Y Y
MQREADALL Y Y
MQREADALLCLOB Y Y
MQRECEIVEALL Y Y
MQRECEIVEALLCLOB Y Y
XMLTABLE passing named variables Y Y Y
XMLTABLE implicitly passing all columns Y Y Y

Procedures

Language element Db2 Db2 Warehouse Big SQL Notes
CREATE_WRAPPED Y Y Y
XSR_ADDSCHEMADOC Y Y Y
XSR_COMPLETE Y Y Y
XSR_DTD Y Y Y
XSR_EXTENTITY Y Y Y
XSR_REGISTER Y Y Y

Queries

Language element Db2 Db2 Warehouse Big SQL Notes
SELECT clause Y Y Y
AS sub-clause in SELECT clause Y Y Y
Qualified or unqualified in SELECT clause Y Y Y
Expressions other than scalar subquery in SELECT clause Y Y Y
Aggregate functions allowed in SELECT clause even if the result table is derived from a grouped view Y Y Y
FROM clause referencing a single table or view Y Y Y
FROM clause with implicit cross join (multiple comma separated table-references) Y Y Y
FROM clause with nested table expression with correlation clause Y Y Y
FROM clause with nested table expression without correlation clause Y Y Y
FROM clause with nested table expression preceded by TABLE keyword Y Y Y
FROM clause with nested table expression preceded by LATERAL keyword Y Y Y
FROM clause with CROSS JOIN Y Y Y
FROM clause with explicit INNER JOIN Y Y Y
FROM clause with LEFT OUTER JOIN Y Y Y
FROM clause with RIGHT OUTER JOIN Y Y Y
FROM clause with FULL OUTER JOIN with equality in the join condition Y Y Y
FROM clause with named columns JOIN Y Y Y
FROM clause with TABLESAMPLE clause Y Y Y
FROM clause with table function reference with correlation clause Y Y Y
FROM clause with table function reference without correlation clause Y Y Y
FROM clause with XMLTABLE expression with correlation clause Y Y Y
FROM clause with XMLTABLE expression without correlation clause Y Y Y
FROM clause with collection derived table (UNNEST of ordinary array) Y Y Y
FROM clause with collection derived table (UNNEST of associative array) Y Y Y
FROM clause with external table reference Y
FROM clause with DELETE statement Y Y Y
FROM clause with INSERT statement Y Y Y
FROM clause with UPDATE statement Y Y Y
WHERE clause Y Y Y
GROUP BY referencing column names Y Y Y
GROUP BY referencing grouping expressions Y Y Y
GROUP BY referencing super groups (CUBE & ROLLUP) Y Y Y
GROUP BY referencing grouping sets Y Y Y
HAVING clause Y Y Y
Subselect with isolation clause Y Y Y
Fullselect with UNION or UNION ALL Y Y Y
Fullselect with INTERSECT or INTERSECT ALL Y Y Y
Fullselect with EXCEPT or EXCEPT ALL Y Y Y
Fullselect with a table value constructor (VALUES clause) Y Y Y
Fullselect with isolation clause Y Y P
Select-statement starting with common table expression Y Y Y
Select-statement using recursive common table expression Y Y Y
Select-statement using CONNECT BY P P P Db2 does not support the CONNECT_BY_ISCYCLE or CONNECT_BY_ISLEAF pseudocolumns.
Select-statement with isolation clause Y Y P
ORDER BY clause over qualified column names Y Y Y
ORDER BY clause over sort-key expressions Y Y Y
ORDER BY clause over expressions not in the SELECT list Y Y Y
ORDER BY ORDER OF Y Y Y
FOR UPDATE clause with list of column names Y Y Y
FOR UPDATE clause with implicit column list Y Y Y
FOR READ ONLY clause Y Y Y
OPTIMIZE clause with integer number of rows Y Y Y
FETCH FIRST clause Y Y Y
LIMIT and OFFSET clauses P P P Not supported in select-statement.
Period specification Y Y Y

Basic statements

Language element Db2 Db2 Warehouse Big SQL Notes
Static CALL statement Y Y Y
Static CALL statement with host variable name for procedure name Y Y Y
Dynamic CALL statement Y Y Y
CALL using named arguments Y Y Y
SELECT INTO statement with optional WHERE, GROUP BY or HAVING clauses Y Y Y
SELECT INTO statement with common table expression Y Y Y
SELECT INTO statement with FETCH FIRST clause Y Y Y
SELECT INTO statement with isolation clause Y Y Y
SELECT INTO statement with LIMIT and OFFSET clause P P P
SET variable statement Y Y Y
VALUES INTO statement Y Y Y

Data change statements

Language element Db2 Db2 Warehouse Big SQL Notes
Searched DELETE statement Y Y P
DELETE statement with isolation clause Y Y P
DELETE statement with FETCH FIRST clause Y Y P
DELETE statement with OFFSET clause Y Y P
DELETE statement with ORDER BY clause Y Y P
INSERT statement with single row VALUES clause Y Y Y
INSERT statement with multiple row VALUES clause Y Y Y
INSERT statement with fullselect Y Y Y
INSERT statement with isolation clause Y Y Y
INSERT statement using row value expression Y Y Y
MERGE statement using table-reference input Y Y P
MERGE statement with isolation clause Y Y P
TRUNCATE statement with IMMEDIATE clause Y Y Y
Searched UPDATE statement Y Y P
UPDATE statement with isolation clause Y Y P
UPDATE statement with FETCH FIRST clause Y Y P
UPDATE statement with OFFSET clause Y Y P
UPDATE statement with ORDER BY clause Y Y P

Cursor-oriented operations

Language element Db2 Db2 Warehouse Big SQL Notes
ALLOCATE CURSOR statement P P P Db2 supports the statement only in SQL procedures.
ASSOCIATE LOCATORS statement P P P Db2 supports the statement only in SQL procedures.
CLOSE statement Y Y Y
DECLARE CURSOR statement (see other cursor elements) Y Y Y
Declare INSENSITIVE SCROLL cursor P P P Db2 only supports this capability through CLI or JDBC.
Declare SENSITIVE STATIC SCROLL cursor P P P Db2 only supports this capability through CLI or JDBC.
Declare WITH HOLD cursor Y Y Y
Declare WITH RETURN cursor (implicit return to caller) Y Y Y
Declare WITH RETURN TO CALLER cursor Y Y Y
Declare WITH RETURN TO CLIENT cursor Y Y Y
Positioned DELETE statement Y Y P
FETCH statement with no cursor orientation (implicit NEXT) Y Y Y
Specify FETCH SENSITIVE or FETCH INSENSITIVE P P P
FETCH statement with NEXT, PRIOR, FIRST, LAST, BEFORE, AFTER, CURRENT, or RELATIVE P P P Db2 only supports these fetch features through CLI or JDBC.
FETCH statement with ABSOLUTE P P P Db2 only supports this fetch feature through CLI or JDBC.
OPEN statement Y Y Y
Positioned UPDATE statement Y Y P

Connection and transaction control

Language element Db2 Db2 Warehouse Big SQL Notes
Isolation Level Specification at package level Y Y Y
Isolation Level Specification at statement level Y Y Y
RR (SERIALIZABLE in SQL2011 Standard) Y Y P
RS (REPEATABLE READ in SQL2011 Standard) Y Y P
CS (READ COMMITTED in SQL2011 Standard) Y Y P
UR (READ UNCOMMITTED in SQL2011 Standard) Y Y Y
Isolation clause with USE AND KEEP EXCLUSIVE LOCKS Y Y Y
Isolation clause with USE AND KEEP SHARED|UPDATE LOCKS Y Y Y
COMMIT statement Y Y Y
CONNECT statement (1 site per transaction) Y Y Y
CONNECT statement (2 sites per transaction) (also referred to as Two Phase Commit) Y Y Y
DISCONNECT statement Y Y Y
RELEASE connection statement Y Y Y
RELEASE SAVEPOINT statement Y Y Y
ROLLBACK unit of work statement Y Y Y
ROLLBACK TO SAVEPOINT statement Y Y Y
SAVEPOINT statement – not nested Y Y Y
SAVEPOINT statement – nested Y Y Y
SET CONNECTION statement Y Y Y

Dynamic facilities

Language element Db2 Db2 Warehouse Big SQL Notes
Compound statement (dynamic) Y Y Y
DESCRIBE output statement without a USING clause Y Y Y
DESCRIBE INPUT statement Y Y Y
EXECUTE statement Y Y Y
EXECUTE IMMEDIATE statement that specifies a variable Y Y Y
EXECUTE IMMEDIATE statement that specifies an expression Y Y Y
PREPARE statement that specifies FROM variable Y Y Y
PREPARE statement that specifies FROM expression Y Y Y
PREPARE statement that specifies cursor options (ATTRIBUTES clause) P P P Db2 only supports this capability through CLI or JDBC.

Control statements

Language element Db2 Db2 Warehouse Big SQL Notes
Control statements in SQL procedures Y Y Y
Control statements in SQL scalar functions Y Y Y
Control statements in SQL table functions Y Y Y
Control statements in SQL triggers Y Y Y
Assignment statement Y Y Y
CASE statement Y Y Y
Compound statement Y Y Y
Nested not atomic compound statement Y Y Y
Declared constant in compound statement Y Y Y
FOR statement Y Y Y
GET DIAGNOSTICS for ROW_COUNT statement Y Y Y
GET DIAGNOSTICS for RETURN_STATUS statement Y Y Y
GET DIAGNOSTICS for MESSAGE_TEXT statement Y Y Y
GOTO statement Y Y Y
IF statement Y Y Y
ITERATE statement Y Y Y
LEAVE statement Y Y Y
LOOP statement Y Y Y
PIPE statement Y Y Y
REPEAT statement Y Y Y
RESIGNAL statement Y Y Y
RETURN statement from SQL procedure Y Y Y
RETURN statement from SQL function Y Y Y
SIGNAL statement Y Y Y
WHILE statement Y Y Y

Data definition

Language element Db2 Db2 Warehouse Big SQL Notes
Allow DDL statements in SQL programs Y Y Y
Support Transaction Semantics for DDL Y Y Y
Support 30 byte column names Y Y Y
Support 128 byte column names Y Y Y
Support 128 byte object names Y Y Y
ALTER FUNCTION statement P P P
ALTER MASK statement Y Y Y
ALTER MODULE statement Y Y Y
ALTER PERMISSION statement Y Y Y
ALTER PROCEDURE statement P P P
ALTER SEQUENCE statement Y Y Y
ALTER TABLE statement (see other elements marked ALTAB) Y Y Y
ALTER COLUMN (ALTAB) P P P
DROP COLUMN (ALTAB) Y Y Y
RENAME COLUMN (ALTAB) Y Y Y
ATTACH and DETACH PARTITION (ALTAB) Y Y Y
ACTIVATE NOT LOGGED (ALTAB) Y Y Y
ALTER TRIGGER statement Y Y Y
ALTER TRUSTED CONTEXT statement Y Y Y
ALTER XSROBJECT statement Y Y Y
COMMENT statement Y Y Y
CREATE ALIAS (table or view) statement Y Y Y
CREATE ALIAS (module) statement Y Y Y
CREATE ALIAS (sequence) statement Y Y Y
CREATE OR REPLACE ALIAS statement Y Y Y
CREATE PUBLIC ALIAS (table or view) statement Y Y Y
CREATE PUBLIC ALIAS (module) statement Y Y Y
CREATE PUBLIC ALIAS (sequence) statement Y Y Y
CREATE OR REPLACE PUBLIC ALIAS statement Y Y Y
CREATE FUNCTION (external scalar) statement Y Y Y
CREATE OR REPLACE FUNCTION (external scalar) statement Y Y Y
CREATE FUNCTION (sourced) statement Y Y Y
CREATE FUNCTION (SQL scalar) statement Y Y Y
CREATE OR REPLACE FUNCTION (SQL scalar) statement Y Y Y
CREATE FUNCTION (external table) statement Y Y Y
CREATE OR REPLACE FUNCTION (external table) statement Y Y Y
CREATE FUNCTION (SQL table) statement Y Y Y
CREATE OR REPLACE FUNCTION (SQL table) statement Y Y Y
CREATE FUNCTION (SQL row) statement Y Y Y
CREATE OR REPLACE FUNCTION (SQL row) statement Y Y Y
CREATE FUNCTION (external generic table) statement Y Y Y
CREATE FUNCTION statement with parameter defaults Y Y Y
CREATE FUNCTION (aggregate interface) statement Y Y Y
CREATE OR REPLACE FUNCTION (aggregate interface) statement Y Y Y
CREATE GLOBAL TEMPORARY TABLE statement Y Y Y
CREATE INDEX over column list Y Y P
CREATE UNIQUE INDEX over column list Y Y P
CREATE INDEX on expression Y Y Y
CREATE INDEX on XMLPATTERN Y Y Y
CREATE MASK statement Y Y Y
CREATE OR REPLACE MASK statement Y Y Y
CREATE MODULE statement Y Y Y
CREATE OR REPLACE MODULE statement Y Y Y
CREATE PERMISSION statement Y Y Y
CREATE OR REPLACE PERMISSION statement Y Y Y
CREATE PROCEDURE (external) statement Y Y Y
CREATE OR REPLACE PROCEDURE (external) statement Y Y Y
CREATE PROCEDURE (SQL) statement Y Y Y
CREATE OR REPLACE PROCEDURE (SQL) statement Y Y Y
CREATE PROCEDURE statement for existing name with different number of parameters Y Y Y
CREATE PROCEDURE statement with parameter defaults Y Y Y
CREATE PROCEDURE statement with AUTONOMOUS Y Y Y
CREATE SCHEMA Y Y Y
CREATE TABLE statement using column definition (see other elements marked CRTAB) Y Y Y
CREATE TABLE statement LIKE other table/view (see other elements marked CRTAB) Y Y Y
CREATE TABLE statement LIKE other table/view including identity (see other elements marked CRTAB) Y Y Y
CREATE TABLE statement AS query (see other elements marked CRTAB) Y Y Y
CHECK constraint clause (ALTAB, CRTAB) Y Y P
NOT ENFORCED clause on CHECK constraint (ALTAB, CRTAB) Y Y Y
DATA CAPTURE clause (ALTAB, CRTAB) Y Y P
DEFAULT clause with no specified value (ALTAB, CRTAB, DGTTAB) Y Y Y
DEFAULT clause with specified value (ALTAB, CRTAB, DGTTAB) Y Y Y
IMPLICITLY HIDDEN clause (ALTAB, CRTAB) Y Y P
VOLATILE clause (ALTAB, CRTAB) Y Y P
Generated column: IDENTITY clause (ALTAB, CRTAB, DGTTAB) Y Y P
Generated column: ROW CHANGE TIMESTAMP clause (ALTAB, CRTAB) Y Y P
Generated column: ROW BEGIN or ROW END clause (ALTAB, CCRTAB) Y Y P
Generated column: TRANSACTION START ID clause (ALTAB, CCRTAB) Y Y P
Generated column: Deterministic expression (ALTAB, CCRTAB) P P P
PRIMARY KEY constraint clause (ALTAB, CRTAB) Y Y P
UNIQUE constraint clause (ALTAB, CRTAB) Y Y P
Automatic index generation for unique constraints (ALTAB, CRTAB) Y Y P
Referential constraint clause (ALTAB, CRTAB) Y Y P
REFERENCES clause specifying ON DELETE (ALTAB, CRTAB) P P P Db2 does not support ON DELETE SET DEFAULT.
REFERENCES clause specifying ON UPDATE (ALTAB, CRTAB) Y Y P
REFERENCES clause specifying NOT ENFORCED clause (ALTAB, CRTAB) Y Y Y
Self referencing tables can be specified without requiring use of ALTER TABLE Y Y Y
Functional dependency clause (ALTAB, CRTAB) Y Y Y
Refresh immediate system maintained MQT (CRTAB,ALTAB) Y Y Y
Refresh deferred system maintained MQT (CRTAB,ALTAB) Y Y Y
User maintained MQT (CRTAB,ALTAB) Y Y Y
PERIOD clause (CRTAB,ALTAB) Y Y P
CREATE EXTERNAL TABLE statement Y
CREATE ROLE statement Y Y Y
CREATE SEQUENCE statement Y Y Y
CREATE OR REPLACE SEQUENCE statement Y Y Y
CREATE TRIGGER statement – BEFORE or AFTER trigger on a table Y Y Y
CREATE TRIGGER statement – INSTEAD OF trigger on a view Y Y Y
CREATE TRIGGER statement – multiple trigger events Y Y Y
CREATE OR REPLACE TRIGGER statement Y Y Y
CREATE TRUSTED CONTEXT statement Y Y Y
CREATE TYPE (array) statement for ordinary array Y Y Y
CREATE TYPE (array) statement for associative array Y Y Y
CREATE OR REPLACE TYPE (array) statement Y Y Y
CREATE TYPE (cursor) statement Y Y Y
CREATE OR REPLACE TYPE (cursor) statement Y Y Y
CREATE TYPE (distinct) statement Y Y Y
CREATE TYPE (distinct) statement with weak type rules Y Y Y
CREATE TYPE (row) statement Y Y Y
CREATE OR REPLACE TYPE (row) statement Y Y Y
CREATE TYPE (structured) statement Y Y Y
CREATE VARIABLE statement P P P Db2 does not support defaults based on array type.
CREATE VARIABLE statement (CONSTANT) Y Y Y
CREATE VARIABLE statement (default based on cursor-value-constructor) Y Y Y
CREATE OR REPLACE VARIABLE statement P P P
CREATE VIEW statement using fullselect without CHECK OPTION clause Y Y Y
CREATE VIEW WITH CASCADED CHECK OPTION Y Y Y
CREATE VIEW WITH LOCAL CHECK OPTION Y Y Y
CREATE VIEW WITH ROW MOVEMENT Y Y Y
CREATE OR REPLACE VIEW statement Y Y Y
DECLARE GLOBAL TEMPORARY TABLE statement (see other elements marked DGTTAB) Y Y Y
CREATE TEMPORARY TABLE (alternative to DECLARE GLOBAL TEMPORARY TABLE) Y Y Y
DROP statement with specified RESTRICT or CASCADE behaviour P P P
DROP ALIAS statement Y Y Y
DROP FUNCTION statement Y Y Y
DROP INDEX statement Y Y Y
DROP MASK statement Y Y Y
DROP MODULE statement Y Y Y
DROP PACKAGE statement Y Y Y
DROP PERMISSION statement Y Y Y
DROP PROCEDURE statement Y Y Y
DROP SCHEMA statement P P P Db2 does not support DROP SCHEMA CASCADE.
DROP SEQUENCE statement Y Y Y
DROP TABLE statement Y Y Y
DROP TRIGGER statement Y Y Y
DROP TYPE statement Y Y Y
DROP VARIABLE statement Y Y Y
DROP VIEW statement Y Y Y
DROP XSROBJECT statement Y Y Y
RENAME TABLE statement P P P
RENAME INDEX statement Y Y Y
Obfuscation of SQL objects written in SQL Y Y Y

Authorization

Language element Db2 Db2 Warehouse Big SQL Notes
GRANT (function privileges) statement Y Y Y
GRANT (global variable privileges) statement Y Y Y
GRANT (module privileges) statement Y Y Y
GRANT (package privileges) statement Y Y Y
GRANT (procedure privileges) statement Y Y Y
GRANT (role) statement Y Y Y
GRANT (schema privileges) statement Y Y Y
GRANT (sequence privileges) statement Y Y Y
GRANT (table privileges) statement Y Y Y
GRANT (XSR object privileges) statement Y Y Y
REVOKE (function privileges) statement Y Y Y
REVOKE (global variable privileges) statement Y Y Y
REVOKE (module privileges) statement Y Y Y
REVOKE (package privileges) statement Y Y Y
REVOKE (procedure privileges) statement Y Y Y
REVOKE (role) statement Y Y Y
REVOKE (schema privileges) statement Y Y Y
REVOKE (sequence privileges) statement Y Y Y
REVOKE (table privileges) statement Y Y Y
REVOKE( XSR object privileges) statement Y Y Y
SET SESSION AUTHORIZATION statement Y Y Y
TRANSFER OWNERSHIP statement Y Y Y

Miscellaneous statements

Language element Db2 Db2 Warehouse Big SQL Notes
BEGIN and END DECLARE SECTION statement Y Y Y
DECLARE STATEMENT statement P P P Starting with Db2 9.7, supports the statement only in compound SQL (compiled) statements.
FREE LOCATOR statement Y Y Y
INCLUDE statement Y Y Y
LOCK TABLE statement Y Y P
REFRESH TABLE statement Y Y Y
SET COMPILATION ENVIRONMENT statement Y Y Y
SET CONNECTION statement Y Y Y
SET CURRENT DECFLOAT ROUNDING MODE statement P P P
SET CURRENT DEFAULT TRANSFORM GROUP statement Y Y Y
SET CURRENT DEGREE statement Y Y Y
SET CURRENT EXPLAIN MODE Y Y Y
SET CURRENT EXPLAIN SNAPSHOT statement Y Y Y
SET CURRENT FEDERATED ASYNCHRONY statement Y Y Y
SET CURRENT IMPLICIT XMLPARSE OPTION statement Y Y Y
SET CURRENT ISOLATION statement Y Y Y
SET CURRENT LOCALE LC_MESSAGES statement Y Y Y
SET CURRENT LOCALE LC_TIME statement Y Y Y
SET CURRENT LOCK TIMEOUT statement Y Y Y
SET CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION statement Y Y Y
SET CURRENT MDC ROLLOUT MODE statement Y Y Y
SET CURRENT OPTIMIZATION PROFILE statement Y Y Y
SET CURRENT PACKAGE PATH statement Y Y Y
SET CURRENT PACKAGESET statement P P P
SET CURRENT QUERY OPTIMIZATION statement Y Y Y
SET CURRENT REFRESH AGE statement Y Y Y
SET CURRENT SQL_CCFLAGS statement Y Y Y
SET CURRENT TEMPORAL BUSINESS_TIME statement Y Y Y
SET CURRENT TEMPORAL SYSTEM_TIME statement Y Y Y
SET ENCRYPTION PASSWORD statement Y Y Y Deprecated Db2 11.1.
SET EVENT MONITOR STATE statement Y Y Y
SET INTEGRITY statement Y Y P
SET PASSTHRU statement Y Y Y
SET PATH statement Y Y Y
SET ROLE statement Y Y Y
SET SCHEMA statement Y Y Y
SET SERVER OPTION statement Y Y Y
SET SESSION AUTHORIZATION statement Y Y Y
SET USAGE LIST STATE statement Y Y Y
WHENEVER statement Y Y Y

Host languages

Language element Db2 Db2 Warehouse Big SQL Notes
C or C Y Y Y
COBOL Y Y Y
FORTRAN Y Y Y
Java (SQLJ) Y Y Y
PL/I Y Y Y
REXX Y Y Y

Netezza compatibility

Language element Db2 Db2 Warehouse Big SQL Notes
Double-dot notation P P P
** exponential operator P P P
# bitwise XOR operator P P P
GROUP BY SELECT clause columns P P P
Expressions referencing column alias P P P
NZPLSQL support P P P
CREATE TABLE AS using Netezza syntax Y Y Y
CREATE TEMP TABLE (alternate syntax for DGTT) Y Y Y

Disclaimer

This list is not necessarily complete. Selected features are based on frequent customer interest. You can find more common features by examining the SQL language Reference books for products in detail.

This list is not intended to be a feature and function list for any of the Db2 products. A feature might already appear on one platform and be in the process of rolling out on other Db2 platforms because new functionality continues to be shipped all the time. Because of the differences in customers and marketplaces, not all platforms require the same features delivered at the same time.