| B011 |   | Embedded Ada |   | 
| B013 |   | Embedded COBOL |   | 
| B014 |   | Embedded Fortran |   | 
| B015 |   | Embedded MUMPS |   | 
| B016 |   | Embedded Pascal |   | 
| B017 |   | Embedded PL/I |   | 
| B031 |   | Basic dynamic SQL |   | 
| B032 |   | Extended dynamic SQL |   | 
| B032-01 |   | <describe input statement> |   | 
| B033 |   | Untyped SQL-invoked function arguments |   | 
| B034 |   | Dynamic specification of cursor attributes |   | 
| B035 |   | Non-extended descriptor names |   | 
| B041 |   | Extensions to embedded SQL exception declarations |   | 
| B051 |   | Enhanced execution rights |   | 
| B111 |   | Module language Ada |   | 
| B112 |   | Module language C |   | 
| B113 |   | Module language COBOL |   | 
| B114 |   | Module language Fortran |   | 
| B115 |   | Module language MUMPS |   | 
| B116 |   | Module language Pascal |   | 
| B117 |   | Module language PL/I |   | 
| B121 |   | Routine language Ada |   | 
| B122 |   | Routine language C |   | 
| B123 |   | Routine language COBOL |   | 
| B124 |   | Routine language Fortran |   | 
| B125 |   | Routine language MUMPS |   | 
| B126 |   | Routine language Pascal |   | 
| B127 |   | Routine language PL/I |   | 
| B128 |   | Routine language SQL |   | 
| B211 |   | Module language Ada: VARCHAR and NUMERIC support |   | 
| B221 |   | Routine language Ada: VARCHAR and NUMERIC support |   | 
| E182 | Core | Module language |   | 
| F054 |   | TIMESTAMP in DATE type precedence list |   | 
| F121 |   | Basic diagnostics management |   | 
| F121-01 |   | GET DIAGNOSTICS statement |   | 
| F121-02 |   | SET TRANSACTION statement: DIAGNOSTICS SIZE clause |   | 
| F122 |   | Enhanced diagnostics management |   | 
| F123 |   | All diagnostics |   | 
| F181 | Core | Multiple module support |   | 
| F202 |   | TRUNCATE TABLE: identity column restart option |   | 
| F263 |   | Comma-separated predicates in simple CASE expression |   | 
| F291 |   | UNIQUE predicate |   | 
| F301 |   | CORRESPONDING in query expressions |   | 
| F311 | Core | Schema definition statement |   | 
| F312 |   | MERGE statement |   | 
| F313 |   | Enhanced MERGE statement |   | 
| F314 |   | MERGE statement with DELETE branch |   | 
| F341 |   | Usage tables | no ROUTINE_*_USAGE tables | 
| F384 |   | Drop identity property clause |   | 
| F385 |   | Drop column generation expression clause |   | 
| F386 |   | Set identity column generation clause |   | 
| F394 |   | Optional normal form specification |   | 
| F403 |   | Partitioned joined tables |   | 
| F451 |   | Character set definition |   | 
| F461 |   | Named character sets |   | 
| F492 |   | Optional table constraint enforcement |   | 
| F521 | Enhanced integrity management | Assertions |   | 
| F671 | Enhanced integrity management | Subqueries in CHECK | intentionally omitted | 
| F693 |   | SQL-session and client module collations |   | 
| F695 |   | Translation support |   | 
| F696 |   | Additional translation documentation |   | 
| F721 |   | Deferrable constraints | foreign and unique keys only | 
| F741 |   | Referential MATCH types | no partial match yet | 
| F812 | Core | Basic flagging |   | 
| F813 |   | Extended flagging |   | 
| F821 |   | Local table references |   | 
| F831 |   | Full cursor update |   | 
| F831-01 |   | Updatable scrollable cursors |   | 
| F831-02 |   | Updatable ordered cursors |   | 
| F841 |   | LIKE_REGEX predicate |   | 
| F842 |   | OCCURENCES_REGEX function |   | 
| F843 |   | POSITION_REGEX function |   | 
| F844 |   | SUBSTRING_REGEX function |   | 
| F845 |   | TRANSLATE_REGEX function |   | 
| F846 |   | Octet support in regular expression operators |   | 
| F847 |   | Nonconstant regular expressions |   | 
| F866 |   | FETCH FIRST clause: PERCENT option |   | 
| F867 |   | FETCH FIRST clause: WITH TIES option |   | 
| S011 | Core | Distinct data types |   | 
| S011-01 | Core | USER_DEFINED_TYPES view |   | 
| S023 | Basic object support | Basic structured types |   | 
| S024 | Enhanced object support | Enhanced structured types |   | 
| S025 |   | Final structured types |   | 
| S026 |   | Self-referencing structured types |   | 
| S027 |   | Create method by specific method name |   | 
| S028 |   | Permutable UDT options list |   | 
| S041 | Basic object support | Basic reference types |   | 
| S043 | Enhanced object support | Enhanced reference types |   | 
| S051 | Basic object support | Create table of type | partially supported | 
| S081 | Enhanced object support | Subtables |   | 
| S091 |   | Basic array support | partially supported | 
| S091-01 |   | Arrays of built-in data types |   | 
| S091-02 |   | Arrays of distinct types |   | 
| S091-03 |   | Array expressions |   | 
| S094 |   | Arrays of reference types |   | 
| S097 |   | Array element assignment |   | 
| S151 | Basic object support | Type predicate |   | 
| S161 | Enhanced object support | Subtype treatment |   | 
| S162 |   | Subtype treatment for references |   | 
| S202 |   | SQL-invoked routines on multisets |   | 
| S231 | Enhanced object support | Structured type locators |   | 
| S232 |   | Array locators |   | 
| S233 |   | Multiset locators |   | 
| S241 |   | Transform functions |   | 
| S242 |   | Alter transform statement |   | 
| S251 |   | User-defined orderings |   | 
| S261 |   | Specific type method |   | 
| S271 |   | Basic multiset support |   | 
| S272 |   | Multisets of user-defined types |   | 
| S274 |   | Multisets of reference types |   | 
| S275 |   | Advanced multiset support |   | 
| S281 |   | Nested collection types |   | 
| S291 |   | Unique constraint on entire row |   | 
| S301 |   | Enhanced UNNEST |   | 
| S401 |   | Distinct types based on array types |   | 
| S402 |   | Distinct types based on distinct types |   | 
| S403 |   | ARRAY_MAX_CARDINALITY |   | 
| S404 |   | TRIM_ARRAY |   | 
| T011 |   | Timestamp in Information Schema |   | 
| T021 |   | BINARY and VARBINARY data types |   | 
| T022 |   | Advanced support for BINARY and VARBINARY data types |   | 
| T023 |   | Compound binary literal |   | 
| T024 |   | Spaces in binary literals |   | 
| T041 | Basic object support | Basic LOB data type support |   | 
| T041-01 | Basic object support | BLOB data type |   | 
| T041-02 | Basic object support | CLOB data type |   | 
| T041-03 | Basic object support | POSITION, LENGTH, LOWER, TRIM, UPPER, and SUBSTRING functions for LOB data types |   | 
| T041-04 | Basic object support | Concatenation of LOB data types |   | 
| T041-05 | Basic object support | LOB locator: non-holdable |   | 
| T042 |   | Extended LOB data type support |   | 
| T043 |   | Multiplier T |   | 
| T044 |   | Multiplier P |   | 
| T051 |   | Row types |   | 
| T052 |   | MAX and MIN for row types |   | 
| T053 |   | Explicit aliases for all-fields reference |   | 
| T061 |   | UCS support |   | 
| T101 |   | Enhanced nullability determination |   | 
| T111 |   | Updatable joins, unions, and columns |   | 
| T174 |   | Identity columns |   | 
| T175 |   | Generated columns |   | 
| T176 |   | Sequence generator support |   | 
| T177 |   | Sequence generator support: simple restart option |   | 
| T178 |   | Identity columns:  simple restart option |   | 
| T180 |   | System-versioned tables |   | 
| T181 |   | Application-time period tables |   | 
| T211 | Active database, Enhanced integrity management | Basic trigger capability |   | 
| T211-06 | Active database, Enhanced integrity management | Support for run-time rules for the interaction of triggers and constraints |   | 
| T211-08 | Active database, Enhanced integrity management | Multiple triggers for the same event are executed in the order in which they were created in the catalog | intentionally omitted | 
| T251 |   | SET TRANSACTION statement: LOCAL option |   | 
| T261 |   | Chained transactions |   | 
| T272 |   | Enhanced savepoint management |   | 
| T285 |   | Enhanced derived column names |   | 
| T301 |   | Functional dependencies | partially supported | 
| T321 | Core | Basic SQL-invoked routines |   | 
| T321-02 | Core | User-defined stored procedures with no overloading |   | 
| T321-04 | Core | CALL statement |   | 
| T321-05 | Core | RETURN statement |   | 
| T322 | PSM | Declared data type attributes |   | 
| T324 |   | Explicit security for SQL routines |   | 
| T326 |   | Table functions |   | 
| T332 |   | Extended roles | mostly supported | 
| T431 | OLAP | Extended grouping capabilities |   | 
| T432 |   | Nested and concatenated GROUPING SETS |   | 
| T433 |   | Multiargument GROUPING function |   | 
| T434 |   | GROUP BY DISTINCT |   | 
| T471 |   | Result sets return value |   | 
| T472 |   | DESCRIBE CURSOR |   | 
| T495 |   | Combined data change and retrieval | different syntax | 
| T502 |   | Period predicates |   | 
| T511 |   | Transaction counts |   | 
| T521 |   | Named arguments in CALL statement |   | 
| T522 |   | Default values for IN parameters of SQL-invoked procedures |   | 
| T541 |   | Updatable table references |   | 
| T561 |   | Holdable locators |   | 
| T571 |   | Array-returning external SQL-invoked functions |   | 
| T572 |   | Multiset-returning external SQL-invoked functions |   | 
| T601 |   | Local cursor references |   | 
| T611 | OLAP | Elementary OLAP operations | most forms supported | 
| T612 |   | Advanced OLAP operations | some forms supported | 
| T613 |   | Sampling |   | 
| T616 |   | Null treatment option for LEAD and LAG functions |   | 
| T618 |   | NTH_VALUE function | function exists, but some options missing | 
| T619 |   | Nested window functions |   | 
| T620 |   | WINDOW clause: GROUPS option |   | 
| T641 |   | Multiple column assignment | only some syntax variants supported | 
| T652 |   | SQL-dynamic statements in SQL routines |   | 
| T653 |   | SQL-schema statements in external routines |   | 
| T654 |   | SQL-dynamic statements in external routines |   | 
| M001 |   | Datalinks |   | 
| M002 |   | Datalinks via SQL/CLI |   | 
| M003 |   | Datalinks via Embedded SQL |   | 
| M004 |   | Foreign data support | partially supported | 
| M005 |   | Foreign schema support |   | 
| M006 |   | GetSQLString routine |   | 
| M007 |   | TransmitRequest |   | 
| M009 |   | GetOpts and GetStatistics routines |   | 
| M010 |   | Foreign data wrapper support | different API | 
| M011 |   | Datalinks via Ada |   | 
| M012 |   | Datalinks via C |   | 
| M013 |   | Datalinks via COBOL |   | 
| M014 |   | Datalinks via Fortran |   | 
| M015 |   | Datalinks via M |   | 
| M016 |   | Datalinks via Pascal |   | 
| M017 |   | Datalinks via PL/I |   | 
| M018 |   | Foreign data wrapper interface routines in Ada |   | 
| M019 |   | Foreign data wrapper interface routines in C | different API | 
| M020 |   | Foreign data wrapper interface routines in COBOL |   | 
| M021 |   | Foreign data wrapper interface routines in Fortran |   | 
| M022 |   | Foreign data wrapper interface routines in MUMPS |   | 
| M023 |   | Foreign data wrapper interface routines in Pascal |   | 
| M024 |   | Foreign data wrapper interface routines in PL/I |   | 
| M030 |   | SQL-server foreign data support |   | 
| M031 |   | Foreign data wrapper general routines |   | 
| X012 |   | Multisets of XML type |   | 
| X013 |   | Distinct types of XML type |   | 
| X014 |   | Attributes of XML type |   | 
| X015 |   | Fields of XML type |   | 
| X025 |   | XMLCast |   | 
| X030 |   | XMLDocument |   | 
| X038 |   | XMLText |   | 
| X065 |   | XMLParse: BLOB input and CONTENT option |   | 
| X066 |   | XMLParse: BLOB input and DOCUMENT option |   | 
| X068 |   | XMLSerialize: BOM |   | 
| X069 |   | XMLSerialize: INDENT |   | 
| X073 |   | XMLSerialize: BLOB serialization and CONTENT option |   | 
| X074 |   | XMLSerialize: BLOB serialization and DOCUMENT option |   | 
| X075 |   | XMLSerialize: BLOB serialization |   | 
| X076 |   | XMLSerialize: VERSION |   | 
| X077 |   | XMLSerialize: explicit ENCODING option |   | 
| X078 |   | XMLSerialize: explicit XML declaration |   | 
| X080 |   | Namespaces in XML publishing |   | 
| X081 |   | Query-level XML namespace declarations |   | 
| X082 |   | XML namespace declarations in DML |   | 
| X083 |   | XML namespace declarations in DDL |   | 
| X084 |   | XML namespace declarations in compound statements |   | 
| X085 |   | Predefined namespace prefixes |   | 
| X086 |   | XML namespace declarations in XMLTable |   | 
| X091 |   | XML content predicate |   | 
| X096 |   | XMLExists |   | 
| X100 |   | Host language support for XML: CONTENT option |   | 
| X101 |   | Host language support for XML: DOCUMENT option |   | 
| X110 |   | Host language support for XML: VARCHAR mapping |   | 
| X111 |   | Host language support for XML: CLOB mapping |   | 
| X112 |   | Host language support for XML: BLOB mapping |   | 
| X113 |   | Host language support for XML: STRIP WHITESPACE option |   | 
| X114 |   | Host language support for XML: PRESERVE WHITESPACE option |   | 
| X131 |   | Query-level XMLBINARY clause |   | 
| X132 |   | XMLBINARY clause in DML |   | 
| X133 |   | XMLBINARY clause in DDL |   | 
| X134 |   | XMLBINARY clause in compound statements |   | 
| X135 |   | XMLBINARY clause in subqueries |   | 
| X141 |   | IS VALID predicate: data-driven case |   | 
| X142 |   | IS VALID predicate: ACCORDING TO clause |   | 
| X143 |   | IS VALID predicate: ELEMENT clause |   | 
| X144 |   | IS VALID predicate: schema location |   | 
| X145 |   | IS VALID predicate outside check constraints |   | 
| X151 |   | IS VALID predicate with DOCUMENT option |   | 
| X152 |   | IS VALID predicate with CONTENT option |   | 
| X153 |   | IS VALID predicate with SEQUENCE option |   | 
| X155 |   | IS VALID predicate: NAMESPACE without ELEMENT clause |   | 
| X157 |   | IS VALID predicate: NO NAMESPACE with ELEMENT clause |   | 
| X160 |   | Basic Information Schema for registered XML Schemas |   | 
| X161 |   | Advanced Information Schema for registered XML Schemas |   | 
| X170 |   | XML null handling options |   | 
| X171 |   | NIL ON NO CONTENT option |   | 
| X181 |   | XML(DOCUMENT(UNTYPED)) type |   | 
| X182 |   | XML(DOCUMENT(ANY)) type |   | 
| X190 |   | XML(SEQUENCE) type |   | 
| X191 |   | XML(DOCUMENT(XMLSCHEMA)) type |   | 
| X192 |   | XML(CONTENT(XMLSCHEMA)) type |   | 
| X200 |   | XMLQuery |   | 
| X201 |   | XMLQuery: RETURNING CONTENT |   | 
| X202 |   | XMLQuery: RETURNING SEQUENCE |   | 
| X203 |   | XMLQuery: passing a context item |   | 
| X204 |   | XMLQuery: initializing an XQuery variable |   | 
| X205 |   | XMLQuery: EMPTY ON EMPTY option |   | 
| X206 |   | XMLQuery: NULL ON EMPTY option |   | 
| X211 |   | XML 1.1 support |   | 
| X221 |   | XML passing mechanism BY VALUE |   | 
| X222 |   | XML passing mechanism BY REF |   | 
| X231 |   | XML(CONTENT(UNTYPED)) type |   | 
| X232 |   | XML(CONTENT(ANY)) type |   | 
| X241 |   | RETURNING CONTENT in XML publishing |   | 
| X242 |   | RETURNING SEQUENCE in XML publishing |   | 
| X251 |   | Persistent XML values of XML(DOCUMENT(UNTYPED)) type |   | 
| X252 |   | Persistent XML values of XML(DOCUMENT(ANY)) type |   | 
| X253 |   | Persistent XML values of XML(CONTENT(UNTYPED)) type |   | 
| X254 |   | Persistent XML values of XML(CONTENT(ANY)) type |   | 
| X255 |   | Persistent XML values of XML(SEQUENCE) type |   | 
| X256 |   | Persistent XML values of XML(DOCUMENT(XMLSCHEMA)) type |   | 
| X257 |   | Persistent XML values of XML(CONTENT(XMLSCHEMA)) type |   | 
| X260 |   | XML type: ELEMENT clause |   | 
| X261 |   | XML type: NAMESPACE without ELEMENT clause |   | 
| X263 |   | XML type: NO NAMESPACE with ELEMENT clause |   | 
| X264 |   | XML type: schema location |   | 
| X271 |   | XMLValidate: data-driven case |   | 
| X272 |   | XMLValidate: ACCORDING TO clause |   | 
| X273 |   | XMLValidate: ELEMENT clause |   | 
| X274 |   | XMLValidate: schema location |   | 
| X281 |   | XMLValidate: with DOCUMENT option |   | 
| X282 |   | XMLValidate with CONTENT option |   | 
| X283 |   | XMLValidate with SEQUENCE option |   | 
| X284 |   | XMLValidate NAMESPACE without ELEMENT clause |   | 
| X286 |   | XMLValidate: NO NAMESPACE with ELEMENT clause |   | 
| X300 |   | XMLTable |   | 
| X301 |   | XMLTable: derived column list option |   | 
| X302 |   | XMLTable: ordinality column option |   | 
| X303 |   | XMLTable: column default option |   | 
| X304 |   | XMLTable: passing a context item |   | 
| X305 |   | XMLTable: initializing an XQuery variable |   |