sql查询中的神秘变量

时间:2011-12-22 18:29:04

标签: sql sql-server-2008

我正在查看一些具有以下结构的sql代码:

set @var =
(
    select count(1) from
    (
        select * from table where field = 1
    )
    someVariable
)

除非声明中有“someVariable”,否则似乎无法运行。我的问题是,这个“someVariable”代表什么,为什么它在查询中?我不明白为什么我不能将@var直接设置为select count语句,所以“someVariable”真的让我失望。

2 个答案:

答案 0 :(得分:6)

派生表需要有别名。在这种情况下,someVariable在别名中起作用。

答案 1 :(得分:0)

当我在MySQL上运行类似的查询时,我得到了:

ERROR 1248 (42000): Every derived table must have its own alias

内部选择实际上产生了一个派生表,someVariable是它的别名。