有没有办法转换单列记录集,如
1
2
3
Run Code Online (Sandbox Code Playgroud)
在SQL Server中输入'1,2,3'字符串?
我已成功使用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
Run Code Online (Sandbox Code Playgroud)
select stuff( (select ',' + YourColumn
from YourTable
for xml path('')), 1, 1, '')
Run Code Online (Sandbox Code Playgroud)
注意: stuff 函数只是从结果字符串中删除第一个逗号。
COALESCE 是这样做的好方法
http://msdn.microsoft.com/en-us/library/ms190349.aspx
DECLARE @Out VARCHAR(2048)
Select @Out = COALESCE(@Out + ', ', '') + [YourColumn] from YourTable
print @Out
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13069 次 |
| 最近记录: |