SQL Select Query中Top 1 1和Select 1之间的差异

Jam*_*mes 21 sql sql-server

我对sql有一个普遍的疑问.什么是"Top 1 1"会做什么?以下查询的含义是什么?

select top 1 1 from Worker W where not exists (select 1 from Manager M where M.Id = W.Id)
Run Code Online (Sandbox Code Playgroud)

在sql server查询中选择"TOP 1 1"和"SELECT 1"之间的差异是什么?

M.A*_*Ali 27

SELECT TOP 1 意味着选择结果集中的第一条记录

SELECT 1 意味着返回1作为结果集

SELECT TOP 1 1 FROM [SomeTable] WHERE <SomeCondition>表示如果条件为真并且从select返回任何行,则仅返回顶1行并且仅返回1该行的整数(不返回整数1的数据).

  • 谢谢您的帮助.但"Top 1 1"意味着什么? (4认同)
  • SELECT TOP 1 选择查询结果集中的第一行,Other 1 将为 manager 表中没有相应记录的任何记录返回 1 (2认同)

RPh*_*der 13

在下文中,第一个"1",它是"TOP 1"的一部分,意味着在获得单个结果后停止.第二个"1"只是因为作者真的不在乎结果是什么.

SELECT TOP 1 1 FROM WORKER
Run Code Online (Sandbox Code Playgroud)

与...基本相同

SELECT TOP 1 * FROM WORKER
Run Code Online (Sandbox Code Playgroud)

唯一的问题是它在查询的"EXISTS"部分是否比单纯的更有效

SELECT 1 FROM Manager...
Run Code Online (Sandbox Code Playgroud)