注册 登录
编程论坛 SQL Server论坛

请教 select 纵向记录转横向 语句

皇火 发布于 2022-11-03 04:33, 4715 次点击
如何将select distinct BH from NAME 查询结果直接从纵向转为横向,例如下表是一般查询结果
XY1
ABC
103
现希望用一条select语句,将3行合并在一个字段中,如: “XY1 ABC 103” 或 “XY1/ABC/103”
先谢为盼
5 回复
#2
my23182022-11-11 13:44
数据处理方法决定了只能采用编程方法实现
#3
stan1122022-11-21 11:19
CREATE TABLE #T (testName NVARCHAR(32))
INSERT INTO #T VALUES('aa'),('bb'),('cc')

select STUFF((SELECT '/'+testName from
(
SELECT testName FROM #T  
)A
FOR XML PATH('')),1,1,'')

DROP TABLE #T
#4
皇火2022-11-23 10:19
谢谢楼上的回复。
这个问题我用select * from 表 PIVOT (...) 解决了,要注意的一点是:语句中尽量用表的别名,直接用表名会出错。
#5
dfasg122022-12-01 14:16
招远程办公资深DBA工程师,薪资35-52K!有兴趣联系Telegram:@w4262
#6
simmety2023-02-21 09:15
CREATE TABLE #T (testName NVARCHAR(32))
INSERT INTO #T VALUES('aa'),('bb'),('cc')

select STUFF((SELECT '/'+testName from
(
SELECT testName FROM #T  
)A
FOR XML PATH('')),1,1,'')

DROP TABLE #T
1