Как обновить многоколонку в SQL? - PullRequest
0 голосов
/ 15 декабря 2010

Мои знания SQL настолько просты, что мне нужна ваша помощь, чтобы написать запрос обновления SQL.Я хочу обновить where workorder=12300000 column1.TrimStart (B7CL) .Addto (column2).Но как я могу это сделать в SQL Server 2005, пожалуйста, посмотрите ниже:

ПРЕОБРАЗОВАТЬ ЭТУ ТАБЛИЦУ

workorder |column1            | column2         
12300000  |B7CL-B32-41-00-5A  | NULL
12400000  |B7CL-B33-42-00-5A  | NULL
12300000  |B7CL-B34-44-03-5A  | NULL
12600000  |B7CL-B35-45-01-5A  | NULL
12300000  |B7CL-B36-45-01-5A  | B36-45-01-5A

В ЭТОТ СТОЛ

workorder |column1            | column2
12300000  |B7CL-B32-41-00-5A  | B32-41-00-5A
12400000  |B7CL-B33-42-00-5A  | B33-42-00-5A
12300000  |B7CL-B34-44-03-5A  | B34-44-03-5A
12600000  |B7CL-B35-45-01-5A  | B35-45-01-5A
12300000  |B7CL-B36-45-01-5A  | B36-45-01-5A

Ответы [ 3 ]

3 голосов
/ 15 декабря 2010

Попробуйте что-то вроде:

UPDATE dbo.YourTable
SET column2 = SUBSTRING(column1, 6, 12)
WHERE column2 IS NULL

или если вы хотите применить свое предложение WHERE (которое вы упомянули):

UPDATE dbo.YourTable
SET column2 = SUBSTRING(column1, 6, 12)
WHERE workorder = 12300000

Однако ваш пример, похоже, не используетэтот пункт ГДЕ .....

2 голосов
/ 15 декабря 2010
 Update Table
    Set Column2 = Replace(Column1, 'B7CL-','')
    Where Column2 Is Null
    AND workorder=12300000
2 голосов
/ 15 декабря 2010

Как насчет чего-то вроде

UPDATE Table
SET Column2 = REPLACE(Column1,'B7CL-','')
WHERE Column2 ISNULL

или с предложением where

UPDATE Table 
SET Column2 = REPLACE(Column1,'B7CL-','') 
WHERE Column2 ISNULL
AND workorder=12300000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...