Can I use… [<e>, <e>, …] (SQL/JSON path array accessor)


Apache DerbyBigQueryDb2 (LUW)H2MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite20072009201120132015201720192021⊘ 3.5.7 - 3.42.0⊘ 2008R2 - 2022✓ 12+⊘ 8.3 - 11✓ 21c+a⚠ 12cR1 - 19ca⊘ 11gR1 - 11gR2⊘ 5.0 - 8.0.33⊘ 5.1 - 10.11⊘ 1.4.192 - 2.1.214⊘ 9.7 - 11.5.8⊘ 2.0⊘ 10.15.2.0 - 10.16.1.1
  1. Only ordered lists without duplicates

The JSON path array accessor accepts a list of elements to pick:

SELECT JSON_QUERY('["A", "B", "C"]', '$[0,2]'
                  WITH ARRAY WRAPPER
                 )
  FROM …

The JSON path expression [0,2] in this example returns the JSON elements "A" and "C".

Normative References

The SQL/JSON path language first appeared in ISO/IEC 9075:2016-2 as part of optional feature T833, “SQL/JSON path language: multiple subscripts”.

About the Author

Photo of Markus Winand

Markus Winand provides insights into SQL and shows how different systems support it at modern-sql.com. Previously he made use-the-index-luke.com, which is still actively maintained. Markus can be hired as trainer, speaker and consultant via winand.at.

Buy the Book

Cover of “SQL Performance Explained”: Squirrel running on grass

The essence of SQL tuning in 200 pages

Buy now!
(paperback and/or PDF)

Paperback also available at Amazon.com.

Hire Markus

Markus offers SQL training and consulting for developers working at companies of all sizes.
Learn more »

Connect with Markus Winand

Markus Winand on LinkedInMarkus Winand on XINGMarkus Winand on Twitter
“modern SQL” by Markus Winand is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Legal | Contact | NO WARRANTY | Trademarks | Privacy and GDPR | CC-BY-NC-ND 3.0 license