Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL:rimuove l'ultima virgola nella stringa

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

Per prima cosa, vuoi TRIM i tuoi dati per eliminare gli spazi iniziali e finali. Quindi REVERSE it e controlla se il primo carattere è , . Se lo è, rimuoverlo, altrimenti non fare nulla. Quindi REVERSE torna di nuovo. Puoi rimuovere il primo carattere usando STUFF(string, 1, 1, '') .

SQL Fiddle