关于case when 的问题

jennelee 2012-01-05 03:59:31
SELECT * FROM 表1 A WHERE
列1 IN(CASE WHEN A.列2 IS NULL THEN '1' ELSE '2' END)
以上这句话是可以用的

SELECT * FROM 表1 A WHERE
列1 IN(CASE WHEN A.列2 IS NULL THEN SELECT TOP 1 列3 FROM [表1] ELSE SELECT TOP 1 列4 FROM [表1] END)
以上这句话编译错误
请问有什么方法可以让下面的语句通过编译并且保证逻辑的正确性
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhenshz 2012-01-05
  • 打赏
  • 举报
回复
如果表有关联的话,我觉的你还是在下面调用吧

select *, case when a.列二 is null then b.列二 else c.列三 end
from 表1 a left join (select top 1* from 表1) b on a.id=b.id
left join (select top 1* from 表1) c on b.id=c.id
Limpire 2012-01-05
  • 打赏
  • 举报
回复
... THEN ( SELECT TOP 1 列3 FROM [表1] ) ELSE ( SELECT TOP 1 列4 FROM [表1] )...

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧