2010-07-30 42 views
0

我得到数据,如如何获取逗号分隔字符串中的多列数据?

Result 
------ 
10 
23 
21 

但我想在下面的格式来获取数据。

Result 
------ 
10, 23, 21 

如何在查询中获取? 预先感谢任何帮助:)

+1

对不起,我忘了告诉我,我想要做到这一点,而不使用任何存储过程。 – 2010-07-30 13:34:38

+0

如何做到这一点像这样的多列http://stackoverflow.com/questions/10037777/send-dbmail-from-sql-server-2000-with-tabular-structured-data – Zeus 2012-04-06 05:15:28

回答

1

这里有一种方法, 存在具有与数据类型为nvarchar的(50)studentName列学生表,则下面的查询会给你的学生姓名为逗号分隔值,

DECLARE @VALUES NVARCHAR(1000) 
SELECT @VALUES = COALESCE(@VALUES + ',','') + CAST(STUDENTNAME AS NVARCHAR(50)) FROM STUDENT 
SELECT @VALUES 
3

示例代码不使用存储过程:) ...

USE AdventureWorks 
GO 
-- Check Table Column 
SELECT Name 
FROM HumanResources.Shift 
GO 
-- Get CSV values 
SELECT SUBSTRING(
(SELECT ',' + s.Name 
FROM HumanResources.Shift s 
ORDER BY s.Name 
FOR XML PATH('')),2,200000) AS CSV 
GO 

更多在这里:

SQL SERVER – Comma Separated Values (CSV) from Table Column

编辑:

对于SQL-Server 2000,看看这里:

How to Format Query Result as Comma Separated Values (CSV)

+3

我认为XML PATH不支持SQL Server 2000 :( – 2010-07-30 13:43:25

+0

你是对的,它不支持。http://www.mssqltips.com/tip.asp?tip=1077。对于SQL-Server 2000,请参阅已编辑的答案 – 2010-07-30 13:54:02