【发布时间】:2015-10-15 12:29:26
【问题描述】:
select *,
case when number = '12' and status = 'y' then cost
end as [price]
from tblx
我从上面的查询中得到了结果,我想使用 price 列的值,同样的查询语句如下所示
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 语句中使用它,因为查询更大,我缩短了问题。
谢谢
【问题讨论】:
-
样本数据和期望的结果将有助于解释您要做什么。
-
如果不能,那为什么不把整个第一个子句放在第二种情况下呢?
-
我想获取价格列值以在相同查询的情况下进行验证。
-
您不能引用在同一范围内创建的别名。考虑使用 CTE 或子查询,例如
SELECT *, CASE WHEN price = 24 THEN trasdate END as trasdate FROM (SELECT *, case when number = '12' ... AS price FROM tblx) AS x; -
案例表达,不是案例陈述...
标签: sql sql-server-2005-express