Обновление
Пожалуйста, попробуйте это / дайте мне знать, если это то, что вы после. Пример
declare @myTable table (a decimal(12,8), b decimal(12,8))
insert @myTable (a, b)
values (-0.340254,51.605946),(-0.340278,51.605685),(-0.339718,51.604400),(-0.339280,51.603746),(-0.338915,51.603454),(-0.338657,51.603018)
select string_agg(c,',') as lineStrings
from
(
select 1 ignore, JSON_MODIFY(JSON_MODIFY('[]', 'append $', a), 'append $', b)
from @myTable
) x(ignore, c)
group by ignore
for json path, without_array_wrapper
пс.В документах есть несколько полезных примеров некоторых распространенных проблем.
Исходная попытка
Вот хакерское решение, которое использует стандартный вывод for json auto
, а затем манипулируетрезультирующая строка с использованием функции replace
.Поскольку вы работаете только с числами, это безопасно, но я бы не стал рисковать, если бы у вас были какие-либо текстовые поля.
Вероятно, есть лучший способ, но я не уверен, что это такое ...
select replace(replace(replace(replace(jsonString,'"a":',''),'"b":',''),'{','['),'}',']') hackedJson
, jsonString returnedJson
from
(
select *
from
(
values (-0.340254,51.605946),(-0.340278,51.605685),(-0.339718,51.604400),(-0.339280,51.603746),(-0.338915,51.603454),(-0.338657,51.603018)
) myTable (a, b)
FOR JSON AUTO
) j( jsonString)