Выбрать первое пришедшее значение

Снупи
Дата: 08.10.2003 11:25:48
Есть такая таблица :
| ID | Satatus | PK |
|____|_________|___|
|2341| 'n' | 1 |
|5412| 'n' | 2 |
|1432| 's' | 3 |
...............................
|5342| 's' | x |
|3214| 'n' |x+1|

Надо выбрать такое ID у котрого найменший PK , если status ='n'
Я написал , что то вроде такого запроса:

SELECT * FROM Table WHERE pk = (SELECT min(pk) FROM Table WHERE status='n')

Сказали, что не совсем подходит. Как такой вопрос решить более лучшим способом.
iSestrin
Дата: 08.10.2003 11:27:55
хм, и чем их не устроил этот вариант?
tpg
Дата: 08.10.2003 11:30:15
Надо выбрать такое ID у котрого найменший PK , если status ='n'

А что, такой запрос
SELECT min(pk) FROM Table WHERE status='n'
уже не соответствует поставленному запросу?
Снупи
Дата: 08.10.2003 11:30:18
Говорят , что не очень быстро работает.
tpg
Дата: 08.10.2003 11:30:40
Проиндексируй по пк.
Glory
Дата: 08.10.2003 11:34:02
SELECT TOP 1 * FROM Table WHERE status='n' ORDER BY pk
Aleksey777
Дата: 08.10.2003 11:36:09
select * top 1 from Table where status='n' order by PK
tpg
Дата: 08.10.2003 11:36:26
В данном конкретном случае можно и вообще без WHERE

SELECT TOP 1 * FROM Table ORDER BY status, pk
Gator
Дата: 08.10.2003 11:36:36
Проиндексируй по пк.

Попробуйте создать индекс (pk, status) или (status, pk)
Aleksey777
Дата: 08.10.2003 11:37:19
Пардон, немного ошибся, см. выше