我可以定义新列并在同一查询中使用它吗?
例如,
Select
student, age + 10 as trueage,
case when trueage < 25 then 'False' else 'True' end
From
class
提前感谢您的帮助!
答案 0 :(得分:3)
CROSS APPLY
在这里会很方便。这是nice article,显示了它的许多用途。
Select
student
,trueage
,case when trueage < 25 then 'False' else 'True' end
From
class
CROSS APPLY
(
SELECT age + 10 as trueage
) AS CA
当您有多个级别的复杂公式时,它非常有用,如下所示:
Select
student
,trueage
,AgeFlag
From
class
CROSS APPLY
(
SELECT age + 10 as trueage
) AS CA1
CROSS APPLY
(
SELECT case when trueage < 25 then 'False' else 'True' end AS AgeFlag
) AS CA2
答案 1 :(得分:0)
如果您考虑使用子查询“相同查询”,那么是。
select student,
trueAge,
case when trueAge < 25 then 'false' else 'true' end as someColumn
from (
select student, age + 10 as trueAge
from table
) thingy
也有其他方法可以做到这一点,这只是其中之一。
答案 2 :(得分:0)
类似的东西:
Select student, age + 10 as trueage,
case when (age + 10) < 25 then 'False' else 'True' end
from class