我可以编写如下的T-SQL
select *
FROM (select *
from TableA
where FieldA = 1
)
where FieldB > 10
这意味着我想从另一个查询的结果中查询。
答案 0 :(得分:2)
是你可以
select *
FROM ( select * from TableA where FieldA=1 ) sub
where FieldB > 10
请记住给子选择一个别名。
答案 1 :(得分:1)
是的,你可以这样做。
答案 2 :(得分:0)
如果要分离子查询,还可以使用公用表表达式(CTE)来帮助提高代码的可读性:
WITH Foo (FieldA, FieldB, FieldC) AS
(
SELECT FieldA, FieldB, FieldC
FROM TableA
WHERE FieldA=1
)
SELECT *
FROM Foo
WHERE FieldB > 10
缺点是您必须明确命名列。然而,这实际上使你的代码更快,所以它并不总是坏事。