有没有办法转换单列记录集,如
1
2
3
在SQL Server中输入'1,2,3'字符串?
答案 0 :(得分:6)
我已成功使用Coalesce创建一个函数,如下所示。然后,您可以在select语句中使用该函数来获取分隔的字符串。 (您可以根据需要在函数中添加参数并在coalesce select语句中使用它们。)
CREATE FUNCTION [dbo].[fn_MyFunction]
(
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @str NVARCHAR(MAX)
DECLARE @Delimiter CHAR(2)
SET @Delimiter = ', '
SELECT @str = COALESCE(@str + @Delimiter,'') + AColumn
FROM dbo.myTable
RETURN RTRIM(LTRIM(@str))
END
答案 1 :(得分:4)
COALESCE是这样做的好方法
http://msdn.microsoft.com/en-us/library/ms190349.aspx
DECLARE @Out VARCHAR(2048)
Select @Out = COALESCE(@Out + ', ', '') + [YourColumn] from YourTable
print @Out
答案 2 :(得分:4)
select stuff( (select ',' + YourColumn
from YourTable
for xml path('')), 1, 1, '')
注意:stuff函数只删除结果字符串中的第一个逗号。