sql >> Databasteknik >  >> RDS >> Sqlserver

Ta bort efterföljande :-tecken från en rad i en SQL-tabell

Du kan använda SAKER funktion som ersätter delar av en sträng. I det här fallet är det det sista tecknet.

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

Eller använd VÄNSTER, ta alla utom den sista. Villkoret COL> '' säkerställer att LEFT har en giltig längd. LEFT är en genväg i SQL Server och verkar vara implementerad som SUBSTRING ( se vidare nedan)*

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

Om du har både data med och utan det avslutande semikolonet kan du rikta in dem specifikt

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

Här är frågeplanen för en fråga som använder VÄNSTER (endast de tre översta raderna i textplanen visas)

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


  1. Kommaseparerade värden i Oracle

  2. Big Data med PostgreSQL och Apache Spark

  3. Få rad med max(kolumn)

  4. Fel vid laddning av delade bibliotek:libpq.so.5:kan inte öppna fil med delat objekt:Ingen sådan fil eller katalog