SQL Server 2016: массив чисел в формате JSON - PullRequest
0 голосов
/ 09 июля 2019

Мне нужно создать массив чисел в формате JSON в SQL Server 2016. Чтобы решить эту проблему, я создал образец таблицы следующим образом:

CREATE TABLE Temp (Id int, Coefficient float)

INSERT into Temp VALUES (1, 0.25), (2, 1.25), (3, 0.44)

Поскольку у нас нет типа данных массива, ясделал запрос для преобразования столбца в массив «String» и отформатировал его в формате JSON:

DECLARE @CSV VARCHAR(MAX) 

SELECT @CSV = COALESCE(@CSV + ', ', '') + CONVERT(varchar(10), Coefficient)  from Temp 
SELECT @CSV = '['+@CSV +']'
SELECT @CSV AS Result For JSON PATH, WITHOUT_ARRAY_WRAPPER 

Результат:

{"Result":"[0.25, 1.25, 0.44]"}

Но он должен быть:

{"Result":[0.25, 1.25, 0.44]}

Есть идеи, как это исправить?

1 Ответ

0 голосов
/ 09 июля 2019

Я только что изменил запрос следующим образом:

DECLARE @CSV VARCHAR(MAX) 
DECLARE @CSV1 VARCHAR(MAX) 
SELECT @CSV = COALESCE(@CSV + ', ', '') + CONVERT(varchar(10), Coefficient) from Temp 
SELECT @CSV = '['+@CSV +']'
SELECT @CSV1= (SELECT @CSV AS Result For JSON PATH, WITHOUT_ARRAY_WRAPPER) 
SELECT REPLACE (REPLACE(@CSV1,'"[','['),']"',']');

Он работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...