日期:2014-05-18  浏览次数:20523 次

简单的查询,不知道怎么解决?
表A:
ID 名称 类别
1 A dr
2 B qr
3 c er
4 f dr
5 e dr
6 g dr
7 j qr
8 h dr

以上为简单数据,真是数据可能很庞杂。
怎样简单得到 类别为dr 时 输入全部名称为结果为:A、F、e、h
select 名称
from a
where 类别='dr'
结果为:
A
F
e
h
如何得到的结果为一行:A、f、e、h 。
菜鸟不懂,怎么把列的结果转成行,不好意思。

------解决方案--------------------
declare @s varchar(100)
select @s=isnull(@s+'、','')+名称 from [Table] where 类别='dr' order by id
select @s
------解决方案--------------------
SQL code
select col from table

结果集:
1
2
3
4
5

我想要的是用逗号隔开的一个字符串
1,2,3,4,5


declare @output varchar(8000)
select @output = coalesce(@output+',', '') + col from table
print @output

--如果col是数值型要转换一下:
declare @output varchar(8000)
select @output = coalesce(@output+',', '') + cast(col as varchar) from table
print @output

------解决方案--------------------


select 名称 
from a 
where 类别= 'dr ' 
结果为: 





-------
用动态SQL

declare @str varchar(1000)
set @str=''
select @str=@str+ ','+ 名称 from a where 类别= 'dr ' 
select stuff(@str,1,1)