2010-06-03 134 views
0

的Sql結合2行至一個

employee name 
------------ 
Sam Korch 
dan mano 

我想拖行結合起來,我有這個表測試儀,這將是「薩姆Korch,丹馬諾」

我有這個疑問

select @theString = COALESCE(@theString + ',', '') + EmployeeName 
    from Testers join vw_EKDIR on Testers.TesterGlobalId = vw_EKDIR.GlobalID 
where TestId = 31 

它的工作,但我不想做的選擇我想要的結果將是@thestring

,所以我嘗試這樣做QUER y

set @theString = (
    select @theString = COALESCE(@theString + ',', '') + EmployeeName 
     from Testers join vw_EKDIR on Testers.TesterGlobalId = vw_EKDIR.GlobalID 
    where TestId = 31 
    ) 

它不工作...我想@thestring將是結果。

任何idaes?

感謝

+0

當你說它正在工作時,你的意思是選擇正確運行,還是運行正確_and_填充變量? – 2010-06-03 11:00:09

+0

它填充變量以及 – Yan 2010-06-03 11:01:17

+0

如果你的第一個查詢已經做了你所需要的(填充變量),你想用第二個查詢來達到什麼目的? – VladV 2010-06-03 11:36:21

回答

0

對於SQL的一部分,並不像這樣的工作:

SELECT t1.name + ", " + t2.name 
FROM tester t1, 
    tester t2 
WHERE t1.TesterGlobalId == t2.GlobalId 
AND t1.testId = 31; 

我不知道具體的RG-SQL服務器/ RG-TSQL。

1

我有這樣的功能,它的工作

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 [email protected] 

      RETURN @p 
      END 
1

對於SQL Server 2005 +,你可以使用FOR XML PATHSTUFF函數返回一個連續清單:

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, '') 
0

集@theString =(選擇COALESCE(@theString +',','')+員工姓名 來自測試人員加入vw_EKDIR在Testers.TesterGlobalId = vw_EKDIR.GlobalID 其中TestId = 31 )