从SQL Server返回以逗号分隔的列表

时间:2013-12-24 06:30:10

标签: sql sql-server sql-server-2008

我有一个存储过程如下。现在我想修改它,以便它以逗号分隔列表的形式返回值。

CREATE PROCEDURE [dbo].[CUST_Notification_GetCompaniesFromEmails]
     @EmailValue AS NTEXT
AS
     SELECT DISTINCT 
         ISNULL(CompanyAddressesContacts.FirstName, '') + ' ' +  
         ISNULL(CompanyAddressesContacts.LastName, '') AS ContactName
         ,ISNULL(dbo.Companies.CompanyName,'') AS CompanyName,
         CASE
            WHEN CompanyName = 'Meraas Development' THEN '1'
            WHEN CompanyName = 'Samsung C&T' THEN '2'
            ELSE '3'
         END AS id
     FROM 
         dbo.CompanyAddressesContacts
     INNER JOIN 
         dbo.Companies ON dbo.CompanyAddressesContacts.CompanyId = Companies.Id
     WHERE 
         dbo.CompanyAddressesContacts.Email IN 
            (SELECT [value] 
             FROM dbo.SplitWords(@EmailValue,';'))

上面的代码返回值,正常的select语句会这样做。现在我想在代码中进行修改,以便它以逗号分隔列表的形式返回一个值。

谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个

DECLARE @List VARCHAR(8000)

SELECT @List = COALESCE(@List + ',', '') + CAST(OfferID AS VARCHAR)
FROM   Emp
WHERE  EmpID = 23

SELECT @List 

答案 1 :(得分:0)