是否可以在一个语句中使用不同的条件更新多个列?
Is it possible to update multiple columns using different criteria in one statement?
如果所有列都是负数,我需要将它们设置为 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
是否可以在一条语句中做同样的事情?
你可以尝试使用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)
如果所有列都是负数,我需要将它们设置为 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
是否可以在一条语句中做同样的事情?
你可以尝试使用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)