sql查询中的神秘变量

sql查询中的神秘变量,sql,sql-server-2008,Sql,Sql Server 2008,我正在看一些具有以下结构的sql代码: set @var = ( select count(1) from ( select * from table where field = 1 ) someVariable ) 除非语句中有“someVariable”,否则它似乎不会运行。我的问题是,这个“someVariable”代表什么,为什么它出现在查询中?我不明白为什么我不能直接将@var设置为select count语句,所以“someVaria

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

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

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

派生表需要有别名
someVariable
在本例中用作别名。

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

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

内部select实际上产生了一个派生表,其中的变量是它的别名。

Ah我明白了。根据我刚才所做的研究,看起来可以将其设置为“AS”,然后设置派生表名。但它在没有“AS”的情况下也能工作。dat“AS”表示什么吗?我明白了,所以如果你有或没有“AS”,它并不意味着有什么不同。好的,谢谢:)RE:“我不明白…”您可以从field=1的表中使用
SELECT@var=COUNT(*),问题不是关于MySQLyes,但在这种情况下这并不重要。查看已接受的答案和我发布的错误消息