Можно ли обновить несколько столбцов, используя разные критерии в одном утверждении? - PullRequest
1 голос
/ 22 марта 2019

Мне нужно установить все столбцы на 0, если они отрицательные. В настоящее время я делаю это по одному столбцу за раз:

UPDATE #ListingRank SET Distance = 0 WHERE Distance < 0
UPDATE #ListingRank SET ActionDays = 0 WHERE ActionDays < 0
UPDATE #ListingRank SET Price = 0 WHERE Price < 0
UPDATE #ListingRank SET Beds = 0 WHERE Beds < 0
UPDATE #ListingRank SET Baths = 0 WHERE Baths < 0
UPDATE #ListingRank SET SqFt = 0 WHERE SqFt < 0

Можно ли сделать то же самое в одном выражении?

1 Ответ

4 голосов
/ 22 марта 2019

Вы можете попробовать использовать CASE WHEN

UPDATE #ListingRank
SET Distance = (CASE WHEN Distance < 0 THEN 0 ELSE Distance END),
    ActionDays = (CASE WHEN ActionDays < 0 THEN 0 ELSE ActionDays END),
    Price = (CASE WHEN Price < 0 THEN 0 ELSE Price END),
    Beds = (CASE WHEN Beds < 0 THEN 0 ELSE Beds END),
    Baths = (CASE WHEN Baths < 0 THEN 0 ELSE Baths END),
    SqFt = (CASE WHEN SqFt < 0 THEN 0 ELSE SqFt END)
...