如何以逗号分隔值的形式获取行。
select [name] from sys.objects where type='u'
我明白了:
DropDownList
SubActivityDetails
Report
Employees
UserMaster
ProjectMaster
我想要这个:
DropDownList,SubActivityDetails,Report,Employees,UserMaster,ProjectMaster
仅在一个查询中
在这种情况下也是
select [name],[object_id] from sys.objects where type='u'
我明白了:
DropDownList 66099276
SubActivityDetails 197575742
Report 254623950
Employees 270624007
但我想要这个:
["SubActivityDetails",197575742],
["Report",254623950],
["Employees",270624007]
因此它与json类似。
并且会有很多数据,因此性能是一个主要问题!
哪个更好
案例1:
DECLARE @Val VARCHAR(MAX)
开始
选择@Val = isnull(@val +','+ [name],[name])
来自sys.objects
其中type ='u'
选择@Val
端
案例2:
DECLARE @Val VARCHAR(MAX)
开始
选择@Val = COALESCE(@val +','+ [name],[name])
来自sys.objects
其中type ='u'
选择@Val
端
答案 0 :(得分:5)
看看这样的事情
DECLARE @Val VARCHAR(MAX)
select @Val = COALESCE(@val + ',' + [name], [name])
from sys.objects
where type='u'
SELECT @Val
好的,对于第二个查询,我们可以尝试
DECLARE @Val VARCHAR(MAX)
select @Val = COALESCE(@val + ',' + '["' + [name] + '",' + CAST([object_id] AS VARCHAR(50)) + ']', '["' + [name] + '",' + CAST([object_id] AS VARCHAR(50)) + ']')
from sys.objects
where type='u'
SELECT @Val