-1
Book
(賣價)
無兩個書具有相同的價格。執行具有計數功能的SQL查詢與在WHERE子句
SELECT bid
FROM Book t1
WHERE (SELECT count(*)
FROM Book t2
WHERE t1.price > t2.price) < 3
請詳細解釋一下上面查詢的例子和結果的執行情況。
Book
(賣價)無兩個書具有相同的價格。執行具有計數功能的SQL查詢與在WHERE子句
SELECT bid
FROM Book t1
WHERE (SELECT count(*)
FROM Book t2
WHERE t1.price > t2.price) < 3
請詳細解釋一下上面查詢的例子和結果的執行情況。
對於表Book
中的每本書,WHERE
子句中的相關子查詢計算了價格嚴格低於Book
的書籍數。如果該數小於三,則選擇該書。
基本上,查詢的答案是:選擇所有書籍的價格較低,最多存在兩本書。
這也可以寫成簡單如下(假設沒有兩個價格是任何對本書一樣):
SQL服務器:
SELECT TOP 3 bid FROM book ORDER BY price ASC;
ANSI/ISO SQL :2008
SELECT bid FROM book ORDER BY price ASC
FETCH FIRST 3 ROWS ONLY
其實我只是想知道這個查詢如何在內部執行? –
SO是針對實際的編程問題,而不是解釋代碼的工作原理。選擇一個SQL教程,網上有很多。 – HoneyBadger
你爲什麼不試驗'EXPLAIN'? –