sql >> Databáze >  >> RDS >> Sqlserver

Proveďte regulární výraz (nahraďte) v dotazu SQL

Vyžaduje se nějaké hackování, ale můžeme to udělat pomocí LIKE , PATINDEX , VLEVO A SPRÁVNĚ a staré dobré řetězení řetězců.

create table test
(
    id int identity(1, 1) not null,
    val varchar(25) not null
)

insert into test values ('&lt; <- ok, &lt <- nok')

while 1 = 1
begin
    update test
        set val = left(val, patindex('%&lt[^;]%', val) - 1) +
                      '&lt;' +
                      right(val, len(val) - patindex('%&lt[^;]%', val) - 2)
    from test
    where val like '%&lt[^;]%'

    IF @@ROWCOUNT = 0 BREAK
end

select * from test

Lepší je, že toto je verze SQL Server agnostika a měla by fungovat dobře.



  1. jak upravit velikost sloupce

  2. Seznam sloupců s indexy v PostgreSQL

  3. Android Studio nekontroluje/nezvýrazní dotazy Kotlin Room DAO, když řetězec zabírá více než 1 řádek

  4. Jak zachovat zpětné lomítko při escapování uvozovek v MySQL – QUOTE()