我尝试连接许多列,并用逗号分隔,如下所示:
Column
------
abc
bcd
bgd
abc
预期产出:abc,bcd,bgd
我正在使用此代码:
CREATE FUNCTION concatinate(@PK uniqueidentifier)
RETURNS varchar(max)
AS
BEGIN
DECLARE @result varchar(max)
SELECT @result = ISNULL(@result + ', ', '') + Column
FROM table
我得到的结果是
abc,bcd,bgd,abc
我不能只选择不同的值。请指导。
3条答案
按热度按时间6ie5vjzr1#
假设您的表名为tb,则您的sql查询将为:
使用这种方法你会得到唯一的值。但是在最后你会得到一个额外的逗号','。这可以通过使用字符串帮助函数来移除。希望这能有所帮助
cwdobuhd2#
对原始代码的一些修改:
这将连接一个不同的列表。与上面的初始答案不同,你不会在末尾得到一个额外的逗号','。
ct2axkht3#
这个问题有7年,因为这一刻,但这里是一个解决方案:
这适用于SQL Server 14.x和更高版本,应该会给予确切的信息。