4
我有兩個表,用戶和#TempTable(它是用戶的子集)。我想更新Users表中的一列IsActive。如果位於#TempTable中的用戶也在Users表中,並且設置IsActive = 0,則我想設置IsActive = 1。使用CASE語句的列中的SQL更新行
獲取用戶未在#TempTable用戶(IsActive應設置爲0,爲這些用戶):
-- (Users \ #TempTable) U (#TempTable \ Users)
SELECT u.UserName
FROM Users u
WHERE (u.UserName) NOT IN
(SELECT t.[User Name] FROM #TempTable t)
UNION ALL
SELECT t.[User Name]
FROM #TempTable t
WHERE (t.[User Name]) NOT IN
(SELECT u.UserName FROM Users u)
讓我們把這種ResultSet中。我會感謝我的UPDATE語句的一些幫助。我希望能夠做的是:
UPDATE Users
SET IsActive = (CASE WHEN User.UserName IN ResultSet THEN 0 ELSE 1 END)
而不必寫出每個User.UserName的CASE WHEN。提前致謝!