Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TSQL从连接的字符串中删除最后一个逗号_Sql_Sql Server_Tsql - Fatal编程技术网

TSQL从连接的字符串中删除最后一个逗号

TSQL从连接的字符串中删除最后一个逗号,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个包含串联值的列,但是字符串的末尾有一个逗号。 如何删除现有值上的最后一个逗号 SELECT m.Mais_Id , m.Outro (SELECT CAST(emp.First_Name + ' ' + emp.Last_Name + ', ' AS VARCHAR(MAX)) FROM Patos p LEFT JOIN Employee emp ON p.Pato_Id = e

我有一个包含串联值的列,但是字符串的末尾有一个逗号。 如何删除现有值上的最后一个逗号

SELECT m.Mais_Id , m.Outro (SELECT CAST(emp.First_Name + ' ' + emp.Last_Name + ', ' AS VARCHAR(MAX)) FROM Patos p LEFT JOIN Employee emp ON p.Pato_Id = emp.Pato_Id WHERE m.Pato_Id = p.Pato_Id FOR XML PATH ('') ) AS Names FROM Mais m 我有这个:

Mais_Id Outro Names 0 As Adn Meas, Fjds Poi, Csa Drop, 1 Be 2 Tee As Been, 这是假装的结果:

Mais_Id Outro Names 0 As Adn Meas, Fjds Poi, Csa Drop 1 Be 2 Tee As Been 试试这个:

SELECT Mais_id, m.Outro, Substring(newColumn, 0, LEN(newColumn) - 1)
FROM (

SELECT 

    m.Mais_Id
    , m.Outro

    (SELECT CAST(emp.First_Name + ' ' + emp.Last_Name + ', ' AS VARCHAR(MAX)) as newColumn
    FROM 
        Patos p
    LEFT JOIN 
        Employee emp
    ON
        p.Pato_Id = emp.Pato_Id
        WHERE
        m.Pato_Id = p.Pato_Id
    FOR XML PATH ('')
    ) AS Names
FROM    
    Mais m
)

最简洁的方法是使用stuff函数:

stuff(
    (
        select ', ' + cast(emp.First_Name + ' ' + emp.Last_Name as varchar(max)) 
        from Patos as p
            left outer join Employee as emp on p.Pato_Id = emp.Pato_Id
        where m.Pato_Id = p.Pato_Id
        for xml path(''), type
    ).value('.', 'nvarchar(max)')
, 1, 2, '')  as Names
注意,使用value函数获取连接字符串更安全,因此如果您有特殊字符,如&或<,则会正确显示。

查看,最后一个字符被截断。