Ger*_*tto 5 sql-server sql-function sql-server-2008
我正在尝试连接许多列并用逗号分隔,如下所示:
Column
------
abc
bcd
bgd
abc
Run Code Online (Sandbox Code Playgroud)
预期输出: abc,bcd,bgd
我正在使用此代码:
CREATE FUNCTION concatinate(@PK uniqueidentifier)
RETURNS varchar(max)
AS
BEGIN
DECLARE @result varchar(max)
SELECT @result = ISNULL(@result + ', ', '') + Column
FROM table
Run Code Online (Sandbox Code Playgroud)
我得到的结果是
abc,bcd,bgd,abc
Run Code Online (Sandbox Code Playgroud)
我不能只选择不同的值。请指导。
假设您的表名是 tb 那么您的 sql 查询将是:
SELECT dist.Column + ','
FROM(
SELECT DISTINCT t.Column
FROM dbo.tb t) dist
FOR XML PATH ('')
Run Code Online (Sandbox Code Playgroud)
使用这种方法,您将获得独特的值。但最后你会得到一个额外的逗号“,”。这可以通过使用字符串辅助函数来删除。希望这可以帮助
| 归档时间: |
|
| 查看次数: |
8074 次 |
| 最近记录: |