используя left и patindex для обновления информации - PullRequest
0 голосов
/ 27 августа 2018

Мне нужно обновить столбец в соответствии с существующим столбцом. Обновляемый столбец - Бизнес. Существующий столбец - Департамент. Не во всех отделах есть двоеточие (:)

Вот что мне нужно получить:

Таблица 1

Отдел бизнеса

 Xerox         Xerox            
 Google        Google: Development
 Zas           Zas: Selling
 Worten        Worten

Я использовал T-SQL:

UPDATE Table 1
set business=left(Department,patindex('%:%',Department))

Что я получаю:

Бизнес-отдел

               Xerox            
 Google:       Google: Development
 Zas:          Zas: Selling
               Worten

Я пытался поставить -1 после patindex, но это запрещено. Это избавит от толстой кишки. Поэтому мне нужен другой подход, чтобы избавиться от двоеточия и включить появление столбцов и ксероксов в бизнес-столбце.

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Я бы написал так:

update Table 1
    set business = left(Department, charindex(':', Department + ':') - 1);

Во-первых, я предпочитаю charindex(), чем patindex(). Несомненно, это связано с тем, что я несколько раз исключал шаблоны из шаблона.

Во-вторых, вы можете устранить условную логику, просто добавив двоеточие в конце отдела. Это упрощает логику.

0 голосов
/ 27 августа 2018
UPDATE [Table 1]
set business=
case when patindex('%:%',Department)>0 then left(Department,patindex('%:%',Department)-1)
else Department
end;

Если это не шаг очистки данных, вы также можете просто создать вычисляемый столбец с тем же выражением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...