0
有沒有更好的方法來做到以下幾點? (而不是有兩個單獨的查詢)我想更新UserTypeId列'USER1
' 或'USER2
'如果AdminDetails表中存在一條記錄。如何基於兩個不同表中的記錄更新列值?
UPDATE Usernames
SET UserTypeId = (select Id from UserTypes where code = 'USER1')
WHERE EXISTS
(SELECT AdminDetails.Id
FROM AdminDetails
WHERE AdminDetails.Id = Usernames.Id)
UPDATE Usernames
SET UserTypeId = (select Id from UserTypes where code = 'USER2')
WHERE EXISTS
(SELECT AdminDetails.Id
FROM AdminDetails
WHERE AdminDetails.Id = Usernames.Id)
我嘗試使用COUNT()
,但我嘗試使用內部連接和case語句來做到這一點的一個查詢時,出現以下錯誤:
UPDATE Usernames
SET UserTypeId = (CASE WHEN COUNT(AdminDetails.Id) > 0 THEN 'USER1' ELSE 'USER2' END)
FROM AdminDetails
INNER JOIN Usernames AS un
ON AdminDetails.Id = un.UserId
但它提供了以下錯誤:「的聚合可能不會出現在UPDATE語句'的設置列表中。
我想在一個查詢中使用case來做到這一點,然後通過檢查一個記錄是否存在。我怎樣才能做到這一點?