我在sql中有一個普遍的疑問。實際上「Top 1 1」會做什麼? 以下查詢的含義是什麼?SQL選擇查詢中Top 1 1和Select 1之間的差異
select top 1 1 from Worker W where not exists (select 1 from Manager M where M.Id = W.Id)
sql server查詢中選擇「TOP 1 1」和「SELECT 1」之間的差異是什麼?
我在sql中有一個普遍的疑問。實際上「Top 1 1」會做什麼? 以下查詢的含義是什麼?SQL選擇查詢中Top 1 1和Select 1之間的差異
select top 1 1 from Worker W where not exists (select 1 from Manager M where M.Id = W.Id)
sql server查詢中選擇「TOP 1 1」和「SELECT 1」之間的差異是什麼?
SELECT TOP 1
意味着選擇的結果,其中設置爲SELECT 1
將在結果返回1非常一號記錄集
如果有至少一名工人(前1),沒有經理髮現請求。 SELECT 1子句充當「返回true」。
如果有管理器,請求select 1 from Manager M where M.Id = W.Id
返回1.如果沒有管理器,請求返回NULL。
SELECT TOP 1 1
會精確選擇0或1個1
s。 SELECT 1
將選擇1
剛好N行,其中N是符合條件的行數。
在你的情況下,它正在尋找第一個(TOP 1
)工人,沒有經理。然而,由於它是SELECT TOP 1 1
,它所做的只是尋找沒有經理的工人的存在。
下面,第一個「1」是「TOP 1」的一部分,意思是在達到單個結果後停止。第二個「1」只是因爲作者真的不在乎結果是什麼。
SELECT TOP 1 1 FROM WORKER
是基本相同
SELECT TOP 1 * FROM WORKER
唯一的問題是,它是否會更有效,在「存在」查詢的不僅僅是
SELECT 1 FROM Manager...
其工作狀部分true false ... 例如 從ItemId = 4526000 的項目中選擇top 1 1它將返回1,因爲where condition是matchi NG。 如果它不匹配,則不會返回。 => 假設 從其中ItemId = 4526000 的項目中選擇top 10 1如果ItemId重複5次,它將返回1次5次。
感謝您的幫助。但是「Top 1 1」是什麼意思? – James
SELECT TOP 1在查詢的結果集中選擇第一行,其他1將在管理器表中沒有相應記錄的任何記錄返回1 –