Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изявление за замяна на SQL Update

;
WITH RowSetToUpdate AS (
  SELECT
    acolumn,
    Asterisk1Pos = CHARINDEX('*', acolumn),
    Asterisk2Pos = CHARINDEX('*', acolumn, CHARINDEX('*', acolumn) + 1)
  FROM atable
  WHERE acolumn LIKE '%*%*%'
)
UPDATE RowSetToUpdate
SET acolumn = STUFF(
  acolumn,
  Asterisk1Pos + 1,
  Asterisk2Pos - Asterisk1Pos - 1,
  'replacement_string'
)

Или ако това е конкретен номер, който трябва да бъде заменен, тогава ще бъде още по-просто:

UPDATE atable
SET acolumn = REPLACE(acolumn, '*88*', '*replacement_string')
WHERE acolumn LIKE '%*88*%'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. възстановяването на база данни е неуспешно с преместване

  2. Получавате грешка при изпълнение на динамичен sql в рамките на функция (SQL Server)?

  3. Преобразувайте Time DataType във формат AM PM:

  4. Възникна грешка на ниво транспорт при получаване на резултати от сървъра

  5. Съхранени процедури/схема на DB в контрола на източника