sql >> Databasteknik >  >> RDS >> Sqlserver

SQL :ta bort sista kommatecken i strängen

Använder REVERSE och 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

Först vill du TRIM dina data för att bli av med ledande och efterföljande utrymmen. Sedan REVERSE det och kontrollera om det första tecknet är , . Om det är det, ta bort det, annars gör ingenting. Sedan REVERSE det tillbaka igen. Du kan ta bort det första tecknet genom att använda STUFF(string, 1, 1, '') .

SQL Fiddle



  1. Hur tar jag bort redundant namnutrymme i kapslad fråga när jag använder FOR XML PATH

  2. Hur kan jag få data från två tabeller

  3. hur man anropar lagrad funktion för IN- och UT-parameter i Oracle Database med Java

  4. Hur man definierar en anpassad ORDER BY order i mySQL