select *,
case when number = '12' and status = 'y' then cost
end as [price]
from tblx
我从上面的查询中得到了结果,我想使用price列的值,再次在同一个查询的case语句中如下所示
select *,
case when number = '12' and status = 'y' then cost-500
end as [price],
case when price = 24 then trasdate end as [trasdate]
from tblx
如果我的问题不明确,请建议我
我正在使用连接8个表的两个以上连接的存储过程,我只想再次获取列值以在同一查询的case语句中使用它,我缩短了问题,因为查询更大。< / p>
由于
答案 0 :(得分:1)
在同一个查询中,您只需复制尝试引用它的同一个case语句。顺便说一下,你应该给它添加一个else 0,因为如果你的条件没有评估为true,它会返回null,这可能会影响它在其他case语句中的用法。
如果您不想复制案例陈述,还有其他选择,例如:
重复这个陈述显然是最简单的,也可能表现得最好,缺点是重复。在性能方面,测试您的可能用例。
答案 1 :(得分:0)
select *,
case when number = '12' and status = 'y' then cost end price,
case when number = '12' and status = 'y'
and cost = 24 then trasdate end [trasdate]
from tblx