Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelle est la meilleure façon de former la valeur de chaîne en utilisant la colonne d'une table avec des lignes ayant le même ID ?

Pour XYZID = 1 .

select stuff((select '#'+col2+'-'+col3+'-'+col4
              from TableB
              where XYZID = 1
              order by seq
              for xml path(''), type).value('.', 'nvarchar(max)'), 1, 1, '')

Pour toutes les lignes du tableau A :

select stuff((select '#'+col2+'-'+col3+'-'+col4
              from TableB as B
              where A.XYZID = B.XYZID
              order by seq
              for xml path(''), type).value('.', 'nvarchar(max)'), 1, 1, '')
from TableA as A