但是我的条件是一条查询语句,
这样也可以吗?
不行,when/if/where后面的语句一定要是一个逻辑表达式,就是可以判断出真/假的句式!就你的例子,你要么判断select出的project是否等于某个值:
case when (select project from …) = xxx then …
要么判断select有返回没有:
case when exists (select project from …) then …
记住:when/if/where后面一定是逻辑表达式。select返回的是结果集,而不是真/假