2

我正在阅读一些 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

据我所知。

'union select -1 as Id' 有什么作用?

最后一行是什么意思:

) t

这里?

谢谢!

4

1 回答 1

5

做什么union select -1 as Id

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

最后一行是什么意思: ') t'

它是子查询的结束括号,它赋予它 alias t。相当于

) AS t
于 2013-09-10T15:04:40.283 回答