Замена строки в SQL - PullRequest
       1

Замена строки в SQL

2 голосов
/ 04 ноября 2011

У меня есть таблица базы данных, и я использую SQL Server 2008.

Таблица содержит несколько столбцов, а в одном столбце тип переменной - «Строка».Столбец выглядит следующим образом:

ColumnA

12301 01

12342 02

12501 01

43201 02

56401 03

56766 01

53478 01

54601 04

Между первыми 5 цифрами и двумя последними цифрами есть пробел.Я хочу заменить последние две цифры на 09, если последние две цифры в строке 01.

Ответы [ 3 ]

3 голосов
/ 04 ноября 2011

Я бы использовал оператор LIKE, чтобы найти все строки, заканчивающиеся на [пробел] + 01, а затем использовал бы метод REPLACE, чтобы заменить 01 на 09

UPDATE  [YourTable]
SET     ColumnA = REPLACE(ColumnA, ' 01', ' 09')
WHERE   ColumnA LIKE '% 01'

Вы можете проверить запрос здесь: http://data.stackexchange.com/stackoverflow/q/116590/

ВНИМАНИЕ:

Никогда не запускайте операторы обновлений для ваших производственных данных без предварительного их тестирования в среде разработки - особенно если вы не писали SQL!

1 голос
/ 04 ноября 2011

Так как значения столбца всегда имеют один пробел перед последними двумя символами, вы можете использовать это для упрощения логики замены, поэтому вам не нужны никакие сложные проверки:

UPDATE Table
SET ColumnA = REPLACE (ColumnA, ' 01', '09')
WHERE ColumnA LIKE '%' + ' 01'
0 голосов
/ 04 ноября 2011
UPDATE Table
  SET ColumnName = LEFT(ColumName, 6) + '09'
Where ColumnName LIKE '[0-9][0-9][0-9][0-9][0-9] 01'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...