sql >> Database >  >> RDS >> Sqlserver

Verwijder trailing :teken uit een rij in een SQL-tabel

U kunt de STUFF gebruiken functie die delen van een string vervangt. In dit geval is dit het laatste teken.

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

Of gebruik LINKS en neem alles behalve de laatste. De voorwaarde COL> '' zorgt ervoor dat LEFT een geldige lengte heeft. LEFT is een snelkoppeling in SQL Server en lijkt te zijn geïmplementeerd als SUBSTRING ( zie verder hieronder)*

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

Als u zowel gegevens met als zonder puntkomma achteraan heeft, kunt u ze specifiek targeten

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

Hier is het zoekplan voor een zoekactie met LINKS (alleen de bovenste 3 regels van het tekstplan worden getoond)

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


  1. Mysql 1 willekeurige rij

  2. ORA-12514 fout na herstarten van de server

  3. SCHEMABINDING verwijderen uit een door de gebruiker gedefinieerde functie in SQL Server

  4. Hoe een groep records in orakel samen te voegen?