2

連結された値を含む列がありますが、文字列の最後にコンマが付いています。既存の値の最後のコンマを削除するにはどうすればよいですか?

選択する

    m.Mais_Id
    、m.Outro

    (SELECT CAST(emp.First_Name + ' ' + emp.Last_Name + ', ' AS VARCHAR(MAX))
    から
        パトス p
    左結合
        従業員
    オン
        p.Pato_Id = emp.Pato_Id
        どこ
        m.Pato_Id = p.Pato_Id
    XML パスの場合 ('')
    ) AS名
から    
    もっと

私はこれを持っています:

Mais_Id アウトロ名
0 As Adn Meas、Fjds Poi、Csa Drop、
1 ビー    
2 ティー・アズ・ビーン、

これはふりをした結果です:

Mais_Id アウトロ名
0 As Adn Meas、Fjds Poi、Csa Drop
1 ビー    
2 ティー・アズ・ビーン
4

2 に答える 2

1

これを行う最も巧妙な方法は、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()。そのため、& や < などの特殊文字がある場合は正しく表示されます。

于 2013-10-01T11:44:56.650 に答える
0

これを試して:

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
)
于 2013-10-01T11:44:01.643 に答える