Sql将两行合并为一行
我有这个桌子测试员Sql将两行合并为一行,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有这个桌子测试员 employee name ------------ Sam Korch dan mano 我想把两排合二为一,是山姆·科奇,丹·马诺 我有这个疑问 select @theString = COALESCE(@theString + ',', '') + EmployeeName from Testers join vw_EKDIR on Testers.TesterGlobalId = vw_EKDIR.GlobalID where TestId = 31
employee name
------------
Sam Korch
dan mano
我想把两排合二为一,是山姆·科奇,丹·马诺
我有这个疑问
select @theString = COALESCE(@theString + ',', '') + EmployeeName
from Testers join vw_EKDIR on Testers.TesterGlobalId = vw_EKDIR.GlobalID
where TestId = 31
它正在工作,但我不想做选择我希望结果将在@thestring中
所以我试着做这个查询
set @theString = (
select @theString = COALESCE(@theString + ',', '') + EmployeeName
from Testers join vw_EKDIR on Testers.TesterGlobalId = vw_EKDIR.GlobalID
where TestId = 31
)
它不起作用。。。我想@thestring将是结果
有艾德家族吗
谢谢您的sql部分,类似这样的东西不管用吗:
SELECT t1.name + ", " + t2.name
FROM tester t1,
tester t2
WHERE t1.TesterGlobalId == t2.GlobalId
AND t1.testId = 31;
我不知道具体的rg sql server/rg tsql。我有这个函数,它可以工作
ALTER FUNCTION [dbo].[udf_concat] ( @c INT )
RETURNS VARCHAR(MAX) AS BEGIN
DECLARE @p VARCHAR(MAX) ;
SET @p='';
SELECT @p = @p + ISNULL(T_NAME.T_FIELD,'')+'|'
FROM T_NAME
where T_NAME.T_OTHER_FIELD=@c
RETURN @p
END
对于SQL Server 2005+,可以使用For XML PATH和function返回串联列表:
SELECT @theString = STUFF(SELECT ','+ vwe.employeename
FROM TESTERS t
JOIN VW_EKDIR vwe ON vwe.globalid = t.testerglobalid
WHERE t.testid = ?
FOR XML PATH('')), 1, 1, '')
设置@theString=selectCOALESCE@theString+','和+EmployeeName 从Testers加入Testers.TesterGlobalId=vw_EKDIR.GlobalID上的vw_EKDIR 其中TestId=31
当您说select运行正常时,是指select运行正常,还是说select运行正常并填充了变量?它也填充了变量如果您的第一个查询已经完成了填充变量所需的操作,那么您想用第二个查询实现什么?