关于case when 的问题
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)
以上这句话编译错误
请问有什么方法可以让下面的语句通过编译并且保证逻辑的正确性