The SQL/JSON Path item-method .keyvalue() has an interesting history in the Oracle Database.
modern-sql.com/caniuse/keyva…
In 23.26.2 it works, but not in ?( filter ) context.
MariaDB 12.3.2 was released last week.
It's the first "stable" version of the long-term supported (LTS = 3 years) 12.3 branch.
An SQL dialect enhancement is the IS JSON predicate. Also: a bug I reported is fixed (MDEV-38835).
All charts on modern-sql.com are updated.
ALT Chart showing the extent of support for SQLs IS JSON test: Full H2 support since 1.4.200. Full PostgreSQL support since 16. Full MariaDB support since 12.3.2. Partial Oracle DB support since 21c.
ORDER BY Has Come a Long Way
modern-sql.com/blog/2026-05/…
The ORDER BY clause is one of the best-known SQL clauses. Yet there are a number of common misunderstandings that are worth clearing up. The article walks you through the evolution of the ORDER BY clause in the SQL standard.
Should these functions return the same value?
SELECT
ROW_NUMBER() OVER (ORDER BY x),
ROW_NUMBER() OVER (ORDER BY x)
FROM ...
What about when many rows have the same value for X?
According to the #SQL standard: yes
@MarkusWinand investigates modern-sql.com/blog/2026-03/…
Order-equivalent OVER clauses
modern-sql.com/blog/2026-03/…
About an important but rarely appreciated aspect when using multiple OVER clauses in a single query.
SQL Comments, Please!
modern-sql.com/caniuse/comme…
Standard SQL offers two flairs of comments: one starts by two dashes (--) and goes to the end of the line. The other starts with slash-asterisk (/*) and ends with asterisk-slash (*/).
#SQL#DuckDB#PostgreSQL#MSSQL
Infinite Recursion Guards
modern-sql.com/caniuse/with_…
With recursive is the only SQL construct that is not guaranteed to terminate, eventually. As the DBMS is typically a very crucial system, infinite loops must be prevented at all times. See how various SQL systems help you.
Oracle 26ai¹ was released yesterday.
Noteworthy SQL addition: QUALIFY.
modern-sql.com/caniuse/quali…
I bet this starts an avalanche (there are already PostgreSQL patches).
¹ 26ai is the marketing version, 23.26.0 is the technical version.
After being « gone fishin' » during summertime I just updated my website for the releases that happened during that time:
* MariaDB 11.8 and 12.0
* Oracle 23.9
* Db2 12.1.2
All charts on modern-sql.com/ and use-the-index-luke.com are updated.
A Christmas present for SQL standard lovers?
Part 1 is available for free again.
standards.iso.org/ittf/Publi…
The last edition that was available for free was 2011, AFAIK. And that disappeared when 2016 was released.
Merry Christmas :)
The scraping of content for AI training makes some changes required. I'll publish less on my website and RSS feed. The mailing lists will probably stay the same for the time being. If you want to still get everything, subscribe here:
winand.at/lists
JSON support in SQL is not about storing JSON documents¹.
While storing JSON in SQL tables is possible and sometimes quite useful, the true power of JSON in SQL comes from the ability to *process* JSON within SQL.
The other direction (creating JSON in SQL) is also possible. This means, JSON in SQL is very useful as an exchange between your client code and the relational model of your database.
modern-sql.com/blog/2017-06/…
———
¹ not only