Создайте представление из таблицы из нескольких строк для создания группы столбцов JSON по указанному столбцу

Вы не можете получить ничего лучше.

В конце концов, любое решение должно будет прочитать весь файл, выяснить, сколько \n у вас есть, и вернуть этот результат.

У вас есть лучший способ сделать это, не читая весь файл? Не уверен ... Лучшее решение всегда будет связано с I / O-привязкой, лучше всего это сделать, чтобы убедиться, что вы не используете ненужную память, но похоже, что у вас есть это.

1
задан Robin Lan 18 January 2019 в 15:05
поделиться

1 ответ

Можно подумать, что нативные средства JSON в SQL Server были бы здесь более полезными, но не совсем - требуется некоторая неуклюжая конкатенация строк, и единственное, что нам действительно приносит пользу, - это нативное экранирование JSON. Это потому, что на самом деле нет удобного способа сопоставить столбцы в пары ключ / значение; только простые сопоставления столбца как ключа.

SELECT [UserID], JsonValue = 
    '{' + STRING_AGG(
        '"' + STRING_ESCAPE([key], 'json') + '"' + ':' + 
        '"' + STRING_ESCAPE([value], 'json') + '"',
        ','
    ) + '}'
FROM UserProperty
GROUP BY UserID

Для этого требуется SQL Server 2017+; он также должен работать на Azure, так как это впереди кривой.

0
ответ дан Jeroen Mostert 18 January 2019 в 15:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: