选择AS WHERE的解决方法

时间:2016-09-02 16:23:08

标签: sql tsql

TSQL中有没有办法在WHERE子句中使用变量/别名?

Select First_Name as FN from PERSON
Where FN like 'D%'

我问的原因是如果我有嵌套选择。我是否必须将整个嵌套的select语句再次放在我的Where子句中进行过滤?

2 个答案:

答案 0 :(得分:1)

评论太长了。

正如许多类似的问题所指出的那样,答案是" no"。解决方案通常是CTE或子查询。这个"限制"是SQL语言的属性,而不是特定数据库的属性。

SQL Server确实有第三种方法(这就是我回答的原因)。这更适合复杂的表达式。您的示例不是一个很好的示例,但您可以使用outer apply

select p2.fn
from person p outer apply
     (select p.First_Name as FN) p2
where p2.fn like 'D%'

答案 1 :(得分:1)

只有在From子句中放置“嵌套选择”(这被称为子查询):

select FN 
from (select First_Name as FN 
      from PERSON) z