sqlserver语句查询,如何将相同条件的某列数据显示到一行?

比如:

carrier dep arr cabin returnPercent
我想显示为: HU PEK SEA B/H/K/L/M/Q/X 0.00
这种形式的,请高手帮忙!!!

第1个回答  2014-03-11
SELECT b.camer,b.dep,b.arr,LEFT(cabinlist,LEN(cabinlist)-1) AS cabin FROM (
SELECT camer,dep,arr,(
SELECT cabin+'/' FROM dbo.baidu 
WHERE returnPercent=0
AND (camer=a.camer AND dep=a.dep AND arr=a.arr)
FOR XML PATH('')) AS cabinlist
FROM dbo.baidu AS a
GROUP BY a.camer,a.dep,a.arr) AS b

追问

大神,第 6 行: 'XML' 附近有语法错误。
create table InterPolicy(
carrier varchar(10),
dep varchar(10),
arr varchar(10),
cabin varchar(3000),
returnPercent Decimal(18,2),
addMoney varchar(20),
id varchar(100)
)

追答

有错吗?我测试了,没错啊。

追问

您的是什么版本的,难道我的不支持FOR XML PATH? 我这边还是报的是XML 腹肌你有语法错误唉

追答

select camer from dbo.baidu for xml path('')

你有没有把表名称改成你的表名称?

用上面的语句,就可以测试你的sql支不支持for xml path()了

追问

改了表名的,多半我的sqlserver2008 用不上xml path() 执行上面的那句报
消息 170,级别 15,状态 1,第 2 行
第 2 行: 'path' 附近有语法错误。

追答

用不了xml path()。你就只能用group by+游标了。

本回答被提问者和网友采纳
第2个回答  2014-03-11
string[] num = 读取条件设定.Tables["五行农历显示"].AsEnumerable().Select(d => d.Field<string>("日期")).ToArray();/*表中某列转数组*/