sqlserver2005 纵向的一列变成一行输出(一行一列)。

我用一条语句查询某一个字段(字段名a,表名t,此表只有30条记录),根据条件查询出其中的多条记录(不定,但一定会小于30行),其结果为:一列数据。语句为:selectaf... 我用一条语句查询某一个字段(字段名a,表名t,此表只有30条记录),根据条件查询出其中的多条记录(不定,但一定会小于30行),其结果为:一列数据。语句为:select a from t where ...,现求高手:这查询出的一列数据,能否转成在一行(一行一列)集中输出,中间用“,”隔开,不知可实现吗?实再不行,把这列结果转成横向输出,变为一行多列也行!要求:不能创建新表,只用一条SQL语句实现,实现查询输出!这样做是为了做报表用的! 展开
 我来答
随机数xZ
推荐于2017-09-10 · TA获得超过357个赞
知道小有建树答主
回答量:372
采纳率:0%
帮助的人:415万
展开全部

看效果是不是这样:

测试案例:

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('')

希望能帮到你!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式