我有雇员表。我有下面的字段。少数雇员多个移动的和家庭号码。我希望在JSON格式的数据发送在哪里条件empid。
从dbo.emp中选择雇员标识、雇员姓名、地址和家庭电话号码
这些字段中的值为
homenumber = 1^2^3^4
address = Home1^Home2^Office1^Office2
我希望以上数据在下面的JSON格式的所有这些字段-空身份证,空姓名,地址,家庭号码
我尝试了以下查询,但得到错误输出
select empid, r.value , r1.value from dbo.emp
cross apply string_split (Homenumber,'^') r
cross apply string_split (address ,'^') r1 where empid=1
我应该得到以下格式的数据
"Address": [{"Homenumber": 1, "address ":"Home1"},{"Homenumber":
2, "address ":"Home2"},{"Homenumber": 3, "address ":"Home3"},
{"Homenumber": 4, "address ":"Home4"}]
但是自从我做了交叉连接,它得到了更多的记录。如果有人能帮助我,我将是伟大的。
2条答案
按热度按时间qvk1mo1f1#
不幸的是,
STRING_SPLIT
目前还没有提供ordinality
列,因此您无法在该列上连接两个拆分。相反,您可以通过创建JSON,然后使用
OPENJSON
来破解它。最后,使用
FOR JSON
将所有内容组合在一起,全部放在一个子查询中jecbmhm32#
将结果转换为JSON格式