[英]Transform columns in Array from JSON
我有一張包含以下數據的表格。
ID | 描述 | 第 1 列 | 第 2 列 | 第 3 列 |
---|---|---|---|---|
1 | 測試1 | X1 | X2 | X3 |
2 | 測試2 | X1 | X2 | X3 |
3 | 測試3 | X1 | X2 | X3 |
4 | 測試4 | X1 | X2 | X3 |
5 | 測試5 | X1 | X2 | X3 |
我需要把它變成:
{
"id":1,
"description": "TESTE1",
"columns": [
"X1",
"X2",
"X3"
]
}
有人能幫我嗎?
這是一種方法。
(但我希望有人能找到更簡潔的方法來獲取字符串數組)
select replace( replace( replace(json, '"[','['), ']"',']'), '`','"') as json from ( select t.id, t.description, ca.* from your_table t cross apply ( select concat('[`', string_agg([col], '`, `'), '`]') from (values (column1), (column2), (column3)) c(col) ) ca(columns) FOR JSON PATH ) q(json)
json |
---|
[{"id":1,"description":"TESTE1","columns":["X1", "X2", "X3"]},{"id":2,"description":"TESTE2", "columns":["X1", "X2", "X3"]},{"id":3,"description":"TESTE3","columns":["X1", "X2", "X3" ]},{"id":4,"description":"TESTE4","columns":["X1", "X2", "X3"]},{"id":5,"description":"TESTE5 ","列":["X1", "X2", "X3"]}] |
關於db<>fiddle 的演示在這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.