Comment obtenir des lignes en tant que valeurs séparées par des virgules.Lignes à des valeurs séparées par des virgules, verticales à horizontales, dans SQL Server
select [name] from sys.objects where type='u'
je reçois ceci:
DropDownList
SubActivityDetails
Report
Employees
UserMaster
ProjectMaster
je veux ceci:
DropDownList,SubActivityDetails,Report,Employees,UserMaster,ProjectMaster
dans une requête unique que
Et dans ce cas
select [name],[object_id] from sys.objects where type='u'
Je reçois ceci:
DropDownList 66099276
SubActivityDetails 197575742
Report 254623950
Employees 270624007
Mais je veux ceci:
["SubActivityDetails",197575742],
["Report",254623950],
["Employees",270624007]
de sorte que son semblable à JSON.
Et il y aurait beaucoup de données, donc la performance est une préoccupation majeure!
qui est mieux
Cas 1:
DECLARE @val VARCHAR (MAX) commencer sélectionnez @val = isnull (@val + '' + [nom], [nom]) de sys.objects
où type = 'u' SELECT @val fin
cas 2:
DECLAR E @val VARCHAR (MAX) commencent sélectionner @val = COALESCE (@val + '' + [nom], [nom]) de sys.objects
où type = 'u' SELECT @val extrémité
Ohh wow! Cela fonctionne très bien, mais que pouvez-vous me recommander pour le cas 2 – Pratik
Désolé de vous déranger à nouveau, mais qui, une fois mieux cas 1: DECLARE @val VARCHAR (MAX) commencer sélectionnez @val = isnull (@val + '' + [nom], [nom]) de sys.objects où type = 'u' SELECT @val extrémité cas 2: DECLARE @val VARCHAR (MAX) commencent sélectionner @val = COALESCE (@val + '' + [nom], [nom]) de sys.objects où type = 'u' SELECT @val extrémité – Pratik
Dans thi s cas, ils sont tous deux les mêmes. COALESCE diffère de ISNULL que vous pouvez spécifier plus de 2 valeurs à regarder.Jetez un oeil à la documentation. –