TSQL中有没有办法在WHERE
子句中使用变量/别名?
Select First_Name as FN from PERSON
Where FN like 'D%'
我问的原因是如果我有嵌套选择。我是否必须将整个嵌套的select语句再次放在我的Where子句中进行过滤?
答案 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