обновить разные столбцы на основе criterea в одном операторе обновления - PullRequest
0 голосов
/ 08 декабря 2010

У меня есть 7 количественных столбцов в таблице, представляющих заказ на каждый день недели для клиента ... это задано и не может быть изменено. Можно ли выполнить обновление, как это

update customerOrder

 case weekday(someDate) when 'SUN' then set Quantity1 = 1 end,
 case weekday(someDate) when 'MON' then set Quantity2 = 1 end,
 case weekday(someDate) when 'TUE' then set Quantity3 = 1 end,
 case weekday(someDate) when 'WED' then set Quantity4 = 1 end,
 case weekday(someDate) when 'THU' then set Quantity5 = 1 end,
 case weekday(someDate) when 'FRI' then set Quantity6 = 1 end,
 case weekday(someDate) when 'SAT' then set Quantity7 = 1 end

WHERE accountNumber = 'ABC123'

В настоящее время я проверяю «someDate» и выполняю определенный оператор обновления. Мне просто интересно, можно ли обернуть все это одним оператором обновления в хранимой процедуре.

1 Ответ

1 голос
/ 08 декабря 2010
UPDATE
  customerOrder
SET
  Quantity1 = CASE WEEKDAY(someDate) WHEN 'SUN' THEN 1 ELSE Quantity1 END,
  Quantity2 = CASE WEEKDAY(someDate) WHEN 'MON' THEN 1 ELSE Quantity2 END,
  Quantity3 = CASE WEEKDAY(someDate) WHEN 'TUE' THEN 1 ELSE Quantity3 END,
  Quantity4 = CASE WEEKDAY(someDate) WHEN 'WED' THEN 1 ELSE Quantity4 END,
  Quantity5 = CASE WEEKDAY(someDate) WHEN 'THU' THEN 1 ELSE Quantity5 END,
  Quantity6 = CASE WEEKDAY(someDate) WHEN 'FRI' THEN 1 ELSE Quantity6 END,
  Quantity7 = CASE WEEKDAY(someDate) WHEN 'SAT' THEN 1 ELSE Quantity7 END
WHERE
  accountNumber = 'ABC123'
...