【问题标题】:Return comma-separated list from SQL Server从 SQL Server 返回逗号分隔的列表
【发布时间】:2013-12-24 06:30:09
【问题描述】:

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

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

上面的代码返回值与普通的选择语句一样。现在我想对代码进行修改,使其以逗号分隔列表的形式返回值。

谢谢!

【问题讨论】:

  • 此过程是否返回超过 1 行? DISTINCT 让我怀疑。

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


【解决方案1】:

这样试试

DECLARE @List VARCHAR(8000)

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

SELECT @List 

【讨论】:

  • 正是我需要的! :)
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 2016-10-24
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
相关资源
最近更新 更多