Я не уверен, правильно ли я понимаю ваш вопрос, но если вы хотите проанализировать данные JSON
с помощью SQL Server, вам следует использовать возможности JSON , которые представлены в SQL Server 2016.Большинство языков сценариев имеют достаточно возможностей для работы в формате JSON
, поэтому вы должны передавать данные JSON
непосредственно в SQL Server.
Далее приведен базовый пример, который вы можете использовать в качестве отправной точки (обратите внимание, что ваш JSON
недействителен):
Таблица с данными:
CREATE TABLE #Data (
VendorId nvarchar(3),
InventoryStatus nvarchar(10)
)
INSERT INTO #Data
(VendorId, InventoryStatus)
VALUES
(N'ABC', N'Open'),
(N'ABC', N'Closed'),
(N'IGH', N'Open'),
(N'IGH', N'Closed')
T-SQL:
-- Valid JSON
-- [{"venid":"ABC", "status":"Open"}, {"venid":"IGH", "status":"Closed"}]
DECLARE @json nvarchar(max)
-- Read JSON from file. Try to send JSON data directly to SQL Server.
-- Additional permissions are needed to execute next statement.
--SELECT @json = BulkColumn
--FROM OPENROWSET (BULK '<Path>\JsonData.json', SINGLE_CLOB) as j
-- Read JSON from variable
SELECT @json = N'[{"venid":"ABC", "status":"Open"}, {"venid":"IGH", "status":"Closed"}]'
-- Use JSON data in a statement
SELECT d.*
FROM #Data d
JOIN OPENJSON(@json) WITH (
VendorId nvarchar(3) '$.venid',
InventoryStatus nvarchar(10) '$.status'
) j ON (d.VendorId = j.VendorId) AND (d.InventoryStatus = j.InventoryStatus)
Вывод:
---------------------------
VendorId InventoryStatus
---------------------------
ABC Open
IGH Closed