我已经在网上看了几天了如何在sql server上使用STUFF,我看到的大多数例子都只涉及到两个表,我的查询是通过3个表,我只是可以“弄不明白在这里工作是没有STUFF功能,让我所有我想要的数据查询:SQL Server字符串Concat与东西
select c.category_name,r.role_name
from categories as c
join role_categ as rc on c.category_id=rc.category_id
join roles as r on r.role_id=rc.role_id
where rc.c_read='1';
我想要的是你有一个CATEGORY_NAME然后标识希望所有的role_names在第一排中的一个单元中:
BCM-Télécopieur-photocopieur Admin,Administation
在这里我有什么用那东西的功能,但不工作仅仅指刚给我同桌的其他查询
select c.category_name,STUFF((
select ','+r.role_name
from roles as r
where rc.role_id=r.role_id
for xml path('')),1,1,'')
from role_categ as rc
join categories as c on c.category_id=rc.category_id
任何帮助,将不胜感激。
尝试增加'选择DISTINCT'主查询和改变'''到-' – lad2025
'STUFF'没有按不做任何字符串连接。 'FOR XML'在这里做了繁重的工作,产生了一个像',abc,def,ghi'这样的字符串。 “STUFF”所做的就是删除那个逗号。 –