'union select -1)是什么意思?

时间:2013-09-10 15:03:01

标签: sql-server

我正在阅读一些SQL Server存储过程。 请看一下这个:

select top 1 t.Id
from (
    select SomeField1 as Id
    from dbo.SomeTable
    where SomeField2 = @someVariable
    union select -1 as Id
) t

这就是我理解的方式:

  1. 返回查询返回的第一项

  2. 字段SomeField1将具有别名:Id

  3. 我们从名为SomeTable的表中选择,其中SomeField2等于@someVariable

  4. 到目前为止,我明白了。

    'union'选择-1作为Id'做什么?

    最后一行的含义是什么:

    ) t
    

    这里吗?

    谢谢!

1 个答案:

答案 0 :(得分:5)

  

union select -1 as Id做了什么?

它向子查询添加了另一条记录,因此如果没有记录与where SomeField2 = @someVariable子句匹配,则保证返回一个值。

  

最后一行的含义是什么:') t'

这是子查询的结束表,它为别名t提供了它。它相当于

) AS t