Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL :supprimer la dernière virgule de la chaîne

Utilisation de REVERSE et 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

Tout d'abord, vous voulez TRIM vos données pour se débarrasser des espaces de début et de fin. Puis REVERSE et vérifiez si le premier caractère est , . Si c'est le cas, supprimez-le, sinon ne faites rien. Puis REVERSE à nouveau. Vous pouvez supprimer le premier caractère en utilisant STUFF(string, 1, 1, '') .

SQL Fiddle