我有一个包含以下数据的数据库表:
st_code st_name st_data
AK Alaska {"sList":[1,2,3]}
AL Alabama {"sList":[4,5,6]}
AR Arkansas {"sList":[7,8,9]}
我还有一个具有以下数据的数据库日期:
sr_nbr sr_data vD vSt f_p
1 {"state":"AK","bU":{"num":1,"b":{"d":"VM"}}, "address":[{"a1":"b"}]} false AK Null
4 {"state":"AL","bU":{"num":4,"b":{"d":"VM"}}, "address":[{"a1":"b"}]} false AL {"D":"x"}
5 {"state":"AL","bU":{"num":5,"b":{"d":"VM"}}, "address":[{"a1":"b"}]} false AL {"D":"y"}
6 {"state":"AL","bU":{"num":6,"b":{"d":"VM"}}, "address":[{"a1":"b"}]} false AL {"D":"z"}
两个表都有共同的st_code和vSt。另外,sr_nbr对应于sList号。我正在尝试构建数据库查询,该查询将返回以下内容。
{
"stData": {
"AL": {
"sList": [4,5,6]
}
},
"srData": {
"4": {
"state": "AL",
"f_p":{
"D":"x"
},
"bu": {},
"num": 4
},
"5": {
"state": "AL",
"f_p":{
"D":"y"
},
"bu": {},
"num": 5
},
"6": {
"state": "AL",
"f_p":{
"D":"z"
},
"bu": {},
"num": 6
}
}
我尝试编写以下查询,但不确定使用此查询是否正确。
Select st_data
From tbl_st_data
Where st_code = 'AL'
FOR JSON AUTO, Root('AL')
您首先需要连接两个表:然后创建JSON字符串。样本:
With t
as(
Select *
From table1 inner join table2 ON st_code=vSt
)
Select * from t
FOR JSON PATH
您可以使用concatt函数,sting_agg(ColumnName,',')函数等来创建任何不同的列。