Modern SQL
SQL has evolved. Beyond the relational model. Discover it now.
- Posts
- 183 from 15 Jun 2017 to 24 Jun 2026
- Posting
- monthly (9 in the last year)
- Kind
- personal blog
- Feed
- https://modern-sql.com/feed
2026 7
2025 2
2024 2
2023 1
2020 2
2019 4
2018 5
2017 1
Undated 159
- T495,“Combined data change and retrieval”
- Modern SQL: Inaugural Post
- CRC-32 (Algorithm)
- CRC-32C (Algorithm, Castagnoli Polynom)
- E011-01, “INTEGER and SMALLINT data types (including all spellings)”
- E021-01, “CHARACTER data type (including all its spellings)”
- E021-02, “CHARACTER VARYING data type (including all its spellings)”
- E021-09, “TRIM function”
- E051-02, “GROUP BY clause”
- E051-04, “GROUP BY can contain columns not in <select list>”
- E051-06, “HAVING clause”
- E051-08, “Correlation names in the FROM clause”
- E051-09, “Rename columns in the FROM clause”
- E061-08, “EXISTS predicate”
- E071-03, “EXCEPT DISTINCT table operator”
- E121-02, “ORDER BY columns need not be in select list”
- E121-03, “Value expressions in ORDER BY clause”
- F261, “CASE expression”
- F262, “Extended CASE expression”
- F263, “Comma-separated predicates in simple CASE expression”
- F292, “UNIQUE null treatment”
- F302-01, “INTERSECT DISTINCT table operator” (renamed: F303)
- F302-02, “INTERSECT ALL table operator” (renamed: F305)
- F303, “INTERSECT DISTINCT table operator”
- F304, “EXCEPT ALL table operator”
- F305, “INTERSECT ALL table operator”
- F312, “MERGE statement”
- F313, “Enhanced MERGE statement”
- F314, “MERGE statement with DELETE branch”
- F421, “National character”
- F850, “Top-level <order by clause> in <query expression>”
- F851, “ORDER BY in subqueries”
- F855, “Nested ORDER BY in query expression”
- ID068, “The implicit large object length when large object length is omitted.”
- ID069, “The implicit character maximum length when character maximum length is omitted.”
- ID133, “The implicit null ordering when null ordering is not specified”
- IL042, “The maximum lengths for character string types and binary string types.”
- MD5 (Algorithm)
- SHA1 (Algorithm)
- SHA2-224 (Algorithm)
- SHA2-256 (Algorithm)
- SHA2-384 (Algorithm)
- SHA2-512 (Algorithm)
- T043, “Multiplier T”
- T044, “Multiplier P”
- T046, “CLOB data type”
- T054, “GREATEST and LEAST”
- T062, “Character length units”
- T071, “BIGINT data type”
- T081, “Optional string types maximum length”
- T121, “WITH (excluding RECURSIVE) in query expression”
- T122, “WITH (excluding RECURSIVE) in subquery”
- T131, “Recursive query”
- T151, “DISTINCT predicate”
- T152, “DISTINCT predicate with negation”
- T175, “Generated columns”
- T301, “Functional dependencies”
- T351, “Bracketed comments”
- T501, “Enhanced EXISTS predicate”
- T502, “Period predicates”
- T591, “UNIQUE constraints of possibly null columns”
- T611, “Elementary OLAP operations”
- T612, “Advanced OLAP operations”
- T614, “NTILE function”
- T615, “LEAD and LAG functions”
- T616, “Null treatment option for LEAD and LAG functions”
- T617, “FIRST_VALUE and LAST_VALUE functions”
- T620, “WINDOW clause: GROUPS option”
- T661, “Non-decimal integer literals”
- T662, “Underscores in numeric literals”
- T814, “Colon in JSON_OBJECT or JSON_OBJECTAGG”
- T821, “Basic SQL/JSON query operators”
- T822, “SQL/JSON: IS JSON WITH UNIQUE KEYS predicate”
- T833, “SQL/JSON path language: multiple subscripts”
- T851, “SQL/JSON: optional keywords for default syntax”
- BIGINT (column type)
- Bitwise xor (^, bitxor, ...)
- CASE … WHEN …, … (comma-separated)
- CASE … WHEN <OP> … (extended)
- CASE WHEN … (searched)
- CASE … WHEN … (simple)
- CAST(… AS BIGINT)
- CAST(… AS INT[EGER])
- CAST(… AS SMALLINT)
- COALESCE(…, …[, …]*)
- CUME_DIST()
- Cycle (recursion)
- DENSE_RANK()
- EXCEPT ALL (table operator)
- EXCEPT [DISTINCT] (table operator)
- Exception Join
- [not] exists (…)
- FIRST_VALUE(…) [RESPECT NULLS]
- FIRST_VALUE(…) IGNORE NULLS
- FIRST_VALUE(… IGNORE NULLS)
- FIRST_VALUE(…, 'IGNORE NULLS')
- GENERATED ALWAYS AS (…)
- GREATEST(), LEAST()
- HAS SUBSTRING (SQL/JSON Path Predicate)
- INTEGER and INT (column types)
- INTERSECT ALL (table operator)
- INTERSECT [DISTINCT] (table operator)
- IS DISTINCT FROM (null-safe not equals comparison)
- IS NOT DISTINCT FROM (null-safe equals comparison)
- IS (binary comparison)
- The ISJSON(…, <TYPE CONSTRAINT>) Function
- JSON_FLATTEN(…) unnest JSON arrays
- JSON_VALID(…)
- .KEYVALUE() (SQL/JSON Path Item Method)
- [LAST] (SQL/JSON Path Array Accessor)
- LAST_VALUE(…) [RESPECT NULLS]
- LAST_VALUE(…) IGNORE NULLS
- LAST_VALUE(… IGNORE NULLS)
- LAST_VALUE(…, 'IGNORE NULLS')
- Merge
- MINUS (table operator)
- MINUS ALL (table operator)
- [<E>, <E>, …] (SQL/JSON Path Array Accessor)
- NATURAL_SORT_KEY(<STRING>)
- NTILE()
- NULLIF(…, …)
- OVER() (empty OVER clause)
- OVER(… EXCLUDE CURRENT ROW)
- OVER(… EXCLUDE GROUP)
- OVER(… EXCLUDE NO OTHERS)
- OVER(… EXCLUDE TIES)
- OVER(… GROUPS BETWEEN …)
- OVER(ORDER BY …)
- OVER(PARTITION BY …)
- OVER(… RANGE BETWEEN …) (datetime)
- OVER(… RANGE BETWEEN …) (numeric)
- OVER(… ROWS BETWEEN …)
- PERCENT_RANK()
- QUALIFY clause (window functions)
- [… TO …] (SQL/JSON Path Array Accessor)
- Rank
- Rollup
- Row number
- Row number (without order by)
- Safe.parse json
- Search (recursion)
- Smallint (column type)
- Spaceship operator
- Trim
- Trim both from
- Trim char from
- Trim leading from
- Trim trailing from
- Unique nulls distinct
- Unique nulls not distinct
- Width bucket
- Window clause
- Window clause chained
- With (non recursive, top level)
- With (non recursive in subquery)
- With recursive (non linear)
- With recursive (top level)
- With recursive (union distinct)
- With recursive infinit loop guards