我对TSQL编程有点新意。我正在使用MS SQL Server 2008 R2。
为什么以下查询无效?我认为一个选择查询只返回一堆记录,我仍然可以从这些记录中选择。
select * from
(
select * from dbo.[sometable]
)
答案 0 :(得分:4)
select * from
(
select * from dbo.[sometable]
) as X
如果使用FROM子查询,你总是需要创建别名,即使你以后没有使用这个别名也就是这样做。
答案 1 :(得分:3)
我想从sometable中选择所有记录然后这应该就够了
select * from dbo.[sometable]
但是,如果要根据其他表中的值过滤一个表的记录,则可以使用嵌套查询,如
select * from table1 where id in (select id from table2)
或者您可以使用
等联接select * from table1 t
join table2 t2 on t.id = t2.id
答案 2 :(得分:1)
SELECT *
FROM
(SELECT *
FROM dbo.[sometable]
)
AS [NAME]
您需要包含要由外部查询
引用的子查询的别名