TABLA SQL a JSON sin información de columna SQL

Nov 26 2020

Estoy tratando de analizar los datos de la tabla en JSON y, en el proceso, quiero omitir los nombres de las columnas de la tabla en la conversión de publicaciones a JSON. A continuación se muestra el fragmento de muestra.

DECLARE @table1 TABLE (k1 nvarchar(max), v1 nvarchar(max))

-- Note k1 is unique
INSERT INTO @table1 (k1,v1) VALUES( 'Apple', 'One')
INSERT INTO @table1 (k1,v1) VALUES( 'Banana', 'Two')
INSERT INTO @table1 (k1,v1) VALUES( 'Orange', 'Three')

SELECT k1, v1 FROM @table1
    FOR JSON PATH, WITHOUT_ARRAY_WRAPPER

--output: {"k1":"Apple","v1":"One"},{"k1":"Banana","v1":"Two"},{"k1":"Orange","v1":"Three"}
-- Expected: {"Apple","One"},{"Banana","Two"},{"Orange","Three"}

¡Apreciamos la dirección!

Respuestas

1 lptr Nov 27 2020 at 12:51

- concatenación y agregación de cadenas (string_agg () para sql2017 y posteriores o para xml path () para sql2016)

select string_agg(concat('{"', string_escape(k1, 'json'), '":"', string_escape(v1, 'json'), '"}'), ',') /*within group (order by k1)*/
from @table1