我有兩行:在一列中選擇一排較低的值SQL
ID | Name
1 | Adrian
2 | Cheska
我希望能夠以較低的ID,在這種情況下是「阿德里安」,選擇該行,因爲他ID = 1,它低於2.我如何選擇列值較低的行?
我有兩行:在一列中選擇一排較低的值SQL
ID | Name
1 | Adrian
2 | Cheska
我希望能夠以較低的ID,在這種情況下是「阿德里安」,選擇該行,因爲他ID = 1,它低於2.我如何選擇列值較低的行?
不確定您RDBMS..This在所有RDBMS
select *
from your_table
where ID in(select min(id) from your_table)
或
編輯應該工作:(按a_horse_with_no_name的評論)
select *
from your_table
where ID =(select min(id) from your_table)
'where id =(...)'也可以。由於聚合函數,子選擇只會返回單個值,因此不需要「IN」。 –
如果ID是你的主鍵,我認爲Shakir的答案是最好的,如果不是的話,我會推薦Joe的。 Cos選擇top 1會忽略類似的結果。例如1 | Adrian 1 | Jessie 2 | Cheska然後1 |傑西將被忽略 – Larry
@a_horse_with_no_name:好point..but我猜想,可能無法在某些數據庫工作 –
SELECT TOP 1 * FROM <tablename>
ORDER BY ID ASC
SELECT TOP 1 * FROM table WHERE something = somethingElse ORDER BY ID ASC
SELECT * FROM table_name d where d.id = (select min(id) from table_name);
你想要多少行,只有一行?低於什麼?既然你已經提供了一個簡化的例子,如果有多個ID低於X的呢? X是一個參數還是你想要ID最低的rcord?順便說一下,你在用什麼RDBMS? [-1]太多的開放性問題] –
所以'@ Name ='Adrian''是一個參數,你想找到下一個ID較低的記錄? –