sql server - Select multi value from another table and put in one string split by - -
i have 2 tables in ms sql server.
table 1
id   name   ------------- 10   series       11   movie       12   music       13   other        table 2
id    idcatg    value   --------------------------- 1       10          hannibal 2       10          blacklist 3       10          poi 4       11          hitman 5       11          saw 6       11          spider man 7       12          taylor swift 8       12          britney spears   i want select idcatg in table 2 , create new column in table 1 this:
idcatg     name        value -------------------------------------------- 10         series      hannibal-blacklist-poi 11         movie       hitman-saw-spider man 12         music       taylor swift-britney spears   how can view?
you can using stuff:
select t21.idcatg, t1.name,       [value] = stuff((           select '-' + t22.[value]           table2 t22           t21.idcatg = t22.idcatg           xml path(''), type).value('.', 'nvarchar(max)'), 1, 1, '') table2 t21 join       table1 t1 on t1.id=t21.idcatg group t21.idcatg,t1.name   result:
idcatg  name    value --------------------------------------------- 10      series  hannibal-blacklist-poi 11      movie   hitman-saw-spider man 12      music   taylor swift-britney spears   sample result in sql fiddle
edit:
when type of value int, can cast varchar:
  [value] = stuff((       select '-' + cast(t22.[value] varchar(max))      
Comments
Post a Comment