Pra*_*tik 0 sql t-sql sql-server csv performance
如何以逗号分隔值的形式获取行.
select [name] from sys.objects where type='u'
Run Code Online (Sandbox Code Playgroud)
我明白了:
DropDownList
SubActivityDetails
Report
Employees
UserMaster
ProjectMaster
Run Code Online (Sandbox Code Playgroud)
我要这个 :
DropDownList,SubActivityDetails,Report,Employees,UserMaster,ProjectMaster
Run Code Online (Sandbox Code Playgroud)
仅在一个查询中
而且在这种情况下
select [name],[object_id] from sys.objects where type='u'
Run Code Online (Sandbox Code Playgroud)
我明白了:
DropDownList 66099276
SubActivityDetails 197575742
Report 254623950
Employees 270624007
Run Code Online (Sandbox Code Playgroud)
但我想要这个:
["SubActivityDetails",197575742],
["Report",254623950],
["Employees",270624007]
Run Code Online (Sandbox Code Playgroud)
所以它类似于json.
并且会有大量数据,因此性能是一个主要问题!
哪个更好
情况1 :
DECLARE @Val VARCHAR(MAX)从sys.objects开始选择@Val = isnull(@val +','+ [name],[name]),
其中type ='u'SELECT @Val end
案例2:
DECLARE @Val VARCHAR(MAX)从sys.objects开始选择@Val = COALESCE(@val +','+ [name],[name]),
其中type ='u'SELECT @Val end
看看这样的事情
DECLARE @Val VARCHAR(MAX)
select @Val = COALESCE(@val + ',' + [name], [name])
from sys.objects
where type='u'
SELECT @Val
Run Code Online (Sandbox Code Playgroud)
好的,对于第二个查询,我们可以尝试
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2630 次 |
| 最近记录: |