0
我有以下查詢,基於兩個值SQL命令通過選擇頂部執行順序
返回記錄的間隔SELECT TOP 3
a.*
FROM
(SELECT TOP 5
ID, Name, CountryCode
FROM city
ORDER BY ID) a
ORDER BY
ID desc
結果:
ID Name CountryCode
5 Amsterdam NLD
4 Mazar-e-Sharif AFG
3 Herat AFG
這是從城市表的日期:
ID Name CountryCode
1 Kabul AFG
2 Qandahar AFG
3 Herat AFG
4 Mazar-e-Sharif AFG
5 Amsterdam NLD
6 Rotterdam NLD
7 Haag NLD
8 Utrecht NLD
9 Eindhoven NLD
10 Tilburg NLD
11 Groningen NLD
. . .
. . .
4076 Hebron PSE
4077 Jabaliya PSE
4078 Nablus PSE
4079 Rafah PSE
但是,當我從子查詢中刪除命令時,我得到了不同的結果:
SELECT TOP 3
a.*
FROM
(SELECT TOP 5
ID, Name, CountryCode
FROM city) a
ORDER BY
ID asc
結果:
ID Name CountryCode
4079 Rafah PSE
4078 Nablus PSE
4077 Jabaliya PSE
問題出在哪裏!?我無法得到它!
你沒有得到什麼?你有兩個不同的查詢,他們返回兩個不同的結果集。我真的不知道哪裏會出現混淆。一點指導:當你使用'TOP'時總是使用'ORDER BY1'。 –
當我執行兩個subquerys:'選擇TOP 5 ID,名稱,國家代碼從城市'和'選擇TOP 5 ID,名稱,國家代碼從城市秩序編號' 我得到相同的結果!那麼爲什麼在同一個父查詢中使用它們給了我們不同的結果! –
沒有'order by'的'top 5'選擇5條隨機記錄。如果這5條記錄是你所期望的,那麼它的事故 –