2012-10-23 53 views
-1

我有兩行:在一列中選擇一排較低的值SQL

ID | Name 
1 | Adrian 
2 | Cheska 

我希望能夠以較低的ID,在這種情況下是「阿德里安」,選擇該行,因爲他ID = 1,它低於2.我如何選擇列值較低的行?

+0

你想要多少行,只有一行?低於什麼?既然你已經提供了一個簡化的例子,如果有多個ID低於X的呢? X是一個參數還是你想要ID最低的rcord?順便說一下,你在用什麼RDBMS? [-1]太多的開放性問題] –

+0

所以'@ Name ='Adrian''是一個參數,你想找到下一個ID較低的記錄? –

回答

4

不確定您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) 
+0

'where id =(...)'也可以。由於聚合函數,子選擇只會返回單個值,因此不需要「IN」。 –

+1

如果ID是你的主鍵,我認爲Shakir的答案是最好的,如果不是的話,我會推薦Joe的。 Cos選擇top 1會忽略類似的結果。例如1 | Adrian 1 | Jessie 2 | Cheska然後1 |傑西將被忽略 – Larry

+0

@a_horse_with_no_name:好point..but我猜想,可能無法在某些數據庫工作 –

1
SELECT TOP 1 * FROM <tablename> 
ORDER BY ID ASC 
0
SELECT TOP 1 * FROM table WHERE something = somethingElse ORDER BY ID ASC 
0

SELECT * FROM table_name d where d.id = (select min(id) from table_name);