обновить несколько столбцов одновременно - PullRequest
0 голосов
/ 02 апреля 2019

Мне нужно обновить таблицу с несколькими столбцами в одном и том же запросе (а также с помощью условия if else), может ли какой-либо метод помочь мне получить желаемый результат.

update tablename 
set 
  IsEmailable=CASE 
    WHEN Email IS NOT NULL AND DNIInd <> 'Y' AND DoNotEmail <> 'Y' THEN 'Y' 
    ELSE 'N' 
  END,
  IsCallable=CASE 
    WHEN (ResTlphnNum IS NOT NULL OR CellTlphnNum IS NOT NULL) AND DoNotCallInd <> 'Y' AND DNIInd <> 'Y' THEN 'Y' 
    ELSE 'N' 
  END,
  IsMailable=CASE 
    WHEN AddrLine1Txt IS NOT NULL AND BadAddrInd <> 'Y' AND DoNotMailInd <> 'Y' AND DNIInd <> 'Y' THEN 'Y' 
    ELSE 'N' 
  END;

1 Ответ

1 голос
/ 02 апреля 2019

Просто используйте оператор case:

update tablename set IsEmailable=CASE WHEN Email IS NOT NULL AND DNIInd='N' AND DoNotEmail='N' THEN 'Y' ELSE 'N' END, 

IsCallable=CASE WHEN (ResTlphnNum IS NOT NULL OR CellTlphnNum IS NOT NULL) AND DoNotCallInd='N' AND DNIInd='N' THEN 'Y' ELSE 'N' END,

IsMailable=CASE WHEN AddrLine1Txt IS NOT NULL AND BadAddrInd='N' AND DoNotMailInd='N' AND DNIInd='N' THEN 'Y' ELSE 'N' END
...