如何将记录转换为SQL Server中
答
我已经成功创建一个函数使用像下面这样的Coalesce来做到这一点。然后,您可以在您的select语句中使用该函数来获取分隔字符串。 (您可以将参数添加到您的函数,并根据需要在聚结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
答
COALESCE是要做到这一点
http://msdn.microsoft.com/en-us/library/ms190349.aspx
DECLARE @Out VARCHAR(2048)
Select @Out = COALESCE(@Out + ', ', '') + [YourColumn] from YourTable
print @Out
答
select stuff((select ',' + YourColumn
from YourTable
for xml path('')), 1, 1, '')
注意体面的方式:STUFF函数只是删除从结果字符串中的第一个逗号。
我知道我可以使用游标要做到这一点,但我想知道是否有不同的方式。 – 2011-01-12 16:03:16
这是否必须在sql级别完成,或者您是否可以通过编程方式在消费端处理此问题? – RQDQ 2011-01-12 16:06:35