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

Sådan fjerner du et bestemt tegn fra en streng, kun når det er det første eller sidste tegn i strengen.

En måde at håndtere "trimming" af kommaer på ville være at bruge en CASE erklæring:

CASE
    WHEN str LIKE ',%,' THEN SUBSTRING(str, 2, LEN(str)-2)
    WHEN str LIKE ',%'  THEN RIGHT(str, LEN(str)-1)
    WHEN str LIKE '%,'  THEN LEFT(str, LEN(str)-1)
    ELSE str
END

Dette er meget selvforklarende:CASE erklæringen overvejer tre situationer -

  • Når strengen str har kommaer på begge sider,
  • Når strengen str starter med et komma, men slutter ikke med et, og
  • Når strengen str ender med et komma, men starter ikke med et.

I det første tilfælde fjernes det første og det sidste tegn; i det andet tilfælde fjernes tegnet længst til venstre; i det sidste tilfælde fjernes det efterfølgende tegn.

Demo på sqlfiddle.



  1. Oracle JDBC prefetch:hvordan man undgår at løbe tør for RAM/hvordan man laver Oracle hurtigere høj latency

  2. Masseopdatering i C#

  3. ALTER &DROP Tabel DDL med Execute Immediate i Oracle Database

  4. Opdatering af flere tabeller i en enkelt sql-sætning