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

Fjern efterfølgende :tegn fra en række i en SQL-tabel

Du kan bruge STUFF funktion, der erstatter dele af en streng. I dette tilfælde er det det sidste tegn.

UPDATE tbl
SET COL = stuff(COL, len(COL), 1, '')
WHERE COL > ''

Eller brug VENSTRE, og tag alle undtagen den sidste. Betingelsen COL> '' sikrer, at LEFT har en gyldig længde. LEFT er en genvej i SQL Server og ser ud til at være implementeret som SUBSTRING ( se yderligere nedenfor)*

UPDATE tbl
SET COL = LEFT(COL, len(COL) -1)
WHERE COL > ''

Hvis du har både data med og uden det efterfølgende semikolon, kan du målrette dem specifikt

UPDATE tbl
SET COL = LEFT(COL, len(COL) -1)
WHERE RIGHT(COL,1) = ':'

Her er forespørgselsplanen for en forespørgsel, der bruger VENSTRE (kun de øverste 3 linjer i tekstplanen vises)

select LEFT(text, LEN(text)-1), * from master..syscomments


  1. Indsætter i Oracle Nested Table i Java

  2. Lidt nysgerrig omkring `mysql -e` outputformat med &uden omdirigering

  3. MAX() vs GREATEST() i MySQL:Hvad er forskellen?

  4. Dumper SQL-forespørgsler til skærmen i Laravel