Используйте JSON_TABLE
, а затем UNPIVOT
, если вы хотите, чтобы значения в строках вместо столбцов:
SELECT *
FROM (
SELECT p.*
FROM table_name t
CROSS JOIN
JSON_TABLE(
t.value,
'$'
COLUMNS (
a PATH '$.a',
b PATH '$.b',
c PATH '$.c'
)
) p
)
UNPIVOT ( value FOR key IN ( a, b, c ) );
Так для некоторых примеров данных:
CREATE TABLE table_name (
value CLOB CONSTRAINT ensure_json CHECK (value IS JSON)
);
INSERT INTO table_name ( value ) VALUES ( '{"a":"value1", "b":"value2", "c":"value3"}' );
Это выводит:
KEY | VALUE
:-- | :-----
A | value1
B | value2
C | value3
дБ <> скрипка здесь