我正在尝试使用 case 语句,但不断出现错误。这是声明:
select TABLE1.acct,
CASE
WHEN TABLE1.acct_id in (select acct_id
from TABLE2
group by acct_id
having count(*) = 1 ) THEN
(select name
from TABLE3
where TABLE1.acct_id = TABLE3.acct_id)
ELSE 'All Others'
END as Name
from TABLE1
当我用文字值替换 THEN 表达式中的 TABLE1.acct_id 时,查询有效。当我尝试使用查询的 WHEN 部分中的 TABLE1.acct_id 时,我收到一条错误消息,指出结果不止一行。似乎 THEN 表达式忽略了 WHEN 语句使用的单个值。不知道,也许这甚至不是对 CASE 语句的有效使用。
我正在尝试查看在 TABLE2 中有一个条目的帐户的名称。
任何想法都将不胜感激,我是 SQL 的新手。