sqlserver2005 纵向的一列变成一行输出(一行一列)。
我用一条语句查询某一个字段(字段名a,表名t,此表只有30条记录),根据条件查询出其中的多条记录(不定,但一定会小于30行),其结果为:一列数据。语句为:selectaf...
我用一条语句查询某一个字段(字段名a,表名t,此表只有30条记录),根据条件查询出其中的多条记录(不定,但一定会小于30行),其结果为:一列数据。语句为:select a from t where ...,现求高手:这查询出的一列数据,能否转成在一行(一行一列)集中输出,中间用“,”隔开,不知可实现吗?实再不行,把这列结果转成横向输出,变为一行多列也行!要求:不能创建新表,只用一条SQL语句实现,实现查询输出!这样做是为了做报表用的!
展开
展开全部
看效果是不是这样:
测试案例:
SELECT * from Tab
--sql语句如下:
select [type],STUFF(
(SELECT ','+name from Tab t2 WHERE t1.type=t2.type FOR XML PATH('')) --通过Type过滤转换成文本同时以(逗号、)分隔
,1,1,'')info from tab t1 GROUP by [type] order by t1.[type],info //分组后排序
效果图如下:
看到没有,所有相同的Type分组 name列为逗号[,]分隔.
--关键这段代码:你拿去数据库中执行一下 将表的行式转成XML格式字符串 当遇到标签与字符相加时会去掉标签!
SELECT ','+name from Tab t2 FOR XML PATH('')
希望能帮到你!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询