JSON_VALUE funksiyasi ma'lumotlar ustunida saqlangan JSON matnidan qiymatni oladi. Ushbu funktsiya JSON matnida olingan qiymatga murojaat qilish uchun JavaScript-ga o'xshash yo'ldan foydalanadi. Olingan qiymat SQL so'rovining istalgan qismida ishlatilishi mumkin.
JSON_QUERY funktsiyasi JSON_VALUE funksiyasiga o'xshash. JSON_VALUE dan farqli o'laroq, ushbu funksiya JSON matniga mos keladigan massivlar yoki obyektlar kabi murakkab subyektlarni oladi.
JSON_MODIFY funksiyasi sizga yangilanadigan JSON matnidagi yo'lni, shuningdek eski qiymatni almashtirish uchun yangi qiymatni belgilashga imkon beradi. Shunday qilib, JSON matnini barcha tuzilmani tahlil qilmasdan osongina yangilashingiz mumkin.
JSON ma'lumotlari oddiy matnda saqlanganligi sababli, matn ustunlarida saqlangan qiymatlar to'g'ri formatlanganligiga kafolat yo'q. Siz Azure SQL ma'lumotlar bazasini tekshirish cheklovlari va ISJSON funktsiyasidan foydalangan holda JSON ustunida saqlangan matnning to'g'ri formatlanganligini tekshirishingiz mumkin.
ALTER TABLE Products
ADD CONSTRAINT [Data should be formatted as JSON]
CHECK (ISJSON(Data) > 0)
Agar kiritilgan matn to'g'ri JSON formatida bo'lsa, ISJSON funktsiyasi 1 qaytadi, har safar JSON ustuni qo'shilganda yoki yangilanganda, ushbu cheklash yangi matn qiymatining JSON formati to'g'ri yoki yo'qligini tekshiradi.
JSON ma'lumotlarini jadval formatiga o'tkazish
Azure SQL ma'lumotlar bazasi va Azure SQL boshqariladigan holati JSON to'plamlarini jadval formatiga o'zgartirish va JSON ma'lumotlarini yuklash yoki so'rashga imkon beradi.
OPENJSON - bu JSON matnini tahlil qiladigan, JSON obyektlarining ketma-ketligini topadigan, qator elementlari ustida iteratsiya qilinadigan va chiqishdagi har bir qator elementlari uchun bitta qatorni qaytaradigan jadvalga asoslangan funksiya.
Yuqoridagi misolda JSON massivini qayerdan ($Orders yo'lida) qidirish kerakligini, natijada qaysi ustunlar qaytarilishi kerakligini va yacheykalar sifatida qaytariladigan JSON qiymatlarini qayerdan qidirishni belgilashingiz mumkin.
@Orders o'zgaruvchisi JSON qatorini qatorlar qatoriga o'zgartirishi, natijalar to'plamini tahlil qilishi yoki standart jadvalga qatorlarni qo'shishi mumkin.
CREATE PROCEDURE InsertOrders(@orders nvarchar(max))
AS BEGIN
insert into Orders(Number, Date, Customer, Quantity)
select Number, Date, Customer, Quantity
FROM OPENJSON (@orders)
WITH (
Number varchar(200),
Date datetime,
Customer varchar(200),
Quantity int
)
END
JSON qatori sifatida formatlangan va saqlanadigan protsedura uchun parametr sifatida ko'rsatilgan buyruqlar to'plamini tahlil qilish va Orders jadvaliga kiritish mumkin.
Do'stlaringiz bilan baham: |