-- Извлечение скалярного значенияSELECT JSON_VALUE(doc, '$.user.name') AS name FROM logs;-- Извлечение объекта/массива как JSON-строкиSELECT JSON_QUERY(doc, '$.items') AS items FROM orders;-- Преобразование JSON-массива в таблицу (ANSI)SELECT jt.*FROM orders,JSON_TABLE(items, '$[*]' COLUMNS ( id INT PATH '$.id', name VARCHAR(50) PATH '$.name', price DECIMAL(10,2) PATH '$.price')) AS jt;
-- Извлечение скалярного значенияSELECT JSON_VALUE(doc, '$.user.name') AS name FROM logs;-- Извлечение объекта/массива как JSON-строкиSELECT JSON_QUERY(doc, '$.items') AS items FROM orders;-- Преобразование JSON-массива в таблицу (ANSI)SELECT jt.*FROM orders,JSON_TABLE(items, '$[*]' COLUMNS ( id INT PATH '$.id', name VARCHAR(50) PATH '$.name', price DECIMAL(10,2) PATH '$.price')) AS jt;
SQLpart-02.sql
-- Проверка валидностиSELECT ISJSON(json_col)-- ИзвлечениеSELECT JSON_VALUE(json_col, '$.user.name')SELECT JSON_QUERY(json_col, '$.items') -- возвращает JSON-фрагмент-- Преобразование в таблицуSELECT *FROM OPENJSON(@json, '$.items')WITH ( id INT '$.id', name NVARCHAR(50) '$.name', price DECIMAL(10,2) '$.price');
-- Проверка валидностиSELECT ISJSON(json_col)-- ИзвлечениеSELECT JSON_VALUE(json_col, '$.user.name')SELECT JSON_QUERY(json_col, '$.items') -- возвращает JSON-фрагмент-- Преобразование в таблицуSELECT *FROM OPENJSON(@json, '$.items')WITH ( id INT '$.id', name NVARCHAR(50) '$.name', price DECIMAL(10,2) '$.price');