ARRAY_REPLACE
Applies to ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
The ARRAY_REPLACE
function allows for replacing all occurrences of an element by another value in an array:
SELECT array_replace(ARRAY[1, 2, 2, 3], 2, -1)
create.select(arrayReplace(array(1, 2, 2, 3), val(2), val(-1))).fetch();
The result would look like this:
+----------------+ | array_replace | +----------------+ | [1, -1, -1, 3] | +----------------+
Dialect support
This example using jOOQ:
arrayReplace(array(1, 2, 2, 3), val(2), val(-1))
Translates to the following dialect specific expressions:
-- AURORA_POSTGRES, COCKROACHDB, POSTGRES, YUGABYTEDB array_replace( ARRAY[1, 2, 2, 3], 2, -1 ) -- H2, HSQLDB ( SELECT array_agg(CASE WHEN x IS NOT DISTINCT FROM 2 THEN -1 ELSE x END ORDER BY o) FROM UNNEST(ARRAY[1, 2, 2, 3]) WITH ORDINALITY t (x, o) ) -- TRINO transform( ARRAY[1, 2, 2, 3], e -> CASE WHEN e IS NOT DISTINCT FROM 2 THEN -1 ELSE e END ) -- ACCESS, ASE, AURORA_MYSQL, BIGQUERY, DB2, DERBY, DUCKDB, EXASOL, FIREBIRD, HANA, INFORMIX, MARIADB, MEMSQL, MYSQL, -- ORACLE, REDSHIFT, SNOWFLAKE, SQLDATAWAREHOUSE, SQLITE, SQLSERVER, SYBASE, TERADATA, VERTICA /* UNSUPPORTED */
(These are currently generated with jOOQ 3.19, see #10141), or translate your own on our website
Feedback
Do you have any feedback about this page? We'd love to hear it!