我有一個查詢來取消激活某些帳戶。基本上它會查看year_end_close表,並且主表中存在的所有帳戶都在主表中更新爲非活動狀態(A或B)。子查詢返回的值超過1個 - 子句
update master
set account_type = case account_type
when 'C' then 'A'
when 'D' then 'B'
else account_type
end
where account_num =
(select account_num
from year_end_close
where account_type in('C', 'D'))`
我得到「子查詢返回多個值」,從where子句 - 我究竟做錯了什麼?當我註釋掉where子句時,我不再會得到那個錯誤,所以它是該子句中的某個部分。
這適用於'SQL-Server',但我相信其他的風格不允許'UPDATE'語句中的'JOIN'。 – 2013-04-09 23:08:01
@adam,我沒有意識到這一點..謝謝。 – 2013-04-09 23:09:32
沒問題 - 我已經通過爲RDBMS提供這種格式的答案而不知所措,只是讓OP告訴我他們沒有工作。在可能的情況下,您的答案是此類查詢的首選形狀。 – 2013-04-09 23:13:44