Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wykonaj regex (zamień) w zapytaniu SQL

Wymagane trochę hakowania, ale możemy to zrobić za pomocą LIKE , PATINDEX , W LEWO ORAZ PRAWY i stare dobre łączenie ciągów.

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

Lepsze jest to, że jest to niezależne od wersji SQL Server i powinno działać dobrze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy są jakieś darmowe narzędzia do generowania skryptów 'INSERT INTO' w MS SQL Server?

  2. Jak sprawdzić zgodność bazy danych SQL Server po przestarzałej funkcji sp_dbcmptlevel?

  3. Jak przekonwertować obraz na tablicę bajtów za pomocą javascript tylko do przechowywania obrazu na serwerze sql?

  4. Zmień język dla bieżącej sesji w SQL Server

  5. Ukryte ulepszenia wydajności i zarządzania w SQL Server 2012/2014