SQL返回json字符串 ( FOR XML PATH )

select  Name + ','  from  A  FOR XML PATH('')

若 Name不是 varchar类型,先转

select  CAST(Name AS varchar) + ','  from  A  FOR XML PATH('')

去,号

select left(a,len(a)-1) from  (select  (select  CAST(Name AS varchar) + ','  from A FOR XML PATH('')) a)b


 

 接下来我们利用STUFF结合FOR XML PATH来拼接JSON字符串,如下

DECLARE @content VARCHAR(MAX)

SET @content = (SELECT '['+ STUFF((SELECT TOP 5 ',{"ID": "' +  CONVERT(VARCHAR, ID) + '","Years": "' + CONVERT(VARCHAR, Years) + '","Name": "' + CONVERT(VARCHAR, Name) + '","ZipCode": "' + CONVERT(VARCHAR, ZipCode, 105) + '"}' FROM CMS_InfoPublish_N_ServiceObject_Type_People 
 FOR XML PATH('')), 1, 1,''
 ) 
 + ']')

PRINT @content 

加个类别列

select 
	类别, 
	名称 = (
		stuff(
			(select ',' + 名称 from Table_A where 类别 = A.类别 for xml path('')),
			1,
			1,
			''
		)
	) 
from Table_A as A group by 类别

补充:

更多stuff用法参考https://www.cnblogs.com/CreateMyself/p/9058380.html

更多FOR XML PATH用法参考https://www.cnblogs.com/yasuo2/p/6433697.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值