本文介紹了使用FOR JSON子句獲取多行的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
使用PostgreSQL我可以擁有多行json對象。
select (select ROW_TO_JSON(_) from (select c.name, c.age) as _) as jsonresult from employee as c
結果如下:
{"age":65,"name":"NAME"}
{"age":21,"name":"SURNAME"}
但在SQLServer中,當我使用FOR JSON AUTO子句時,它會給我一個json對象數組,而不是多行。
select c.name, c.age from customer c FOR JSON AUTO
[{"age":65,"name":"NAME"},{"age":21,"name":"SURNAME"}]
如何在SQLServer中獲取相同的結果格式?
推薦答案
通過在每個單獨的行中構造單獨的JSON:
SELECT (SELECT [age], [name] FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)
FROM customer
還有一種不需要您了解表結構的替代形式(但性能可能較差,因為它可能會生成大型中間JSON):
SELECT [value] FROM OPENJSON(
(SELECT * FROM customer FOR JSON PATH)
)
這篇關于使用FOR JSON子句獲取多行的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,