Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL:remova a última vírgula na string


Usando REVERSE e STUFF :
SELECT
    REVERSE(
        STUFF(
            REVERSE(LTRIM(RTRIM(INETSHORTD))), 
            1, 
            CASE WHEN SUBSTRING((REVERSE(LTRIM(RTRIM(INETSHORTD)))), 1, 1) = ',' THEN 1 ELSE 0 END, 
            ''
        )
    )
FROM tbl

Primeiro, você deseja TRIM seus dados para se livrar de espaços à esquerda e à direita. Então REVERSE e verifique se o primeiro caractere é , . Se estiver, remova-o, caso contrário não faça nada. Então REVERSE ele de volta novamente. Você pode remover o primeiro caractere usando STUFF(string, 1, 1, '') .

SQL Fiddle