Выберите TOP 1 в SQL Server 6.5 - PullRequest
       9

Выберите TOP 1 в SQL Server 6.5

5 голосов
/ 15 сентября 2010

Прошу вас не спрашивать меня, почему я использую SQL Server 6.5

В SQL Server 6.5 нет команды SELECT TOP, и угадайте, что мне нужно:)

Мне нужно выполнить что-то вроде

Select top 1 * from persons
where name ='Mike'
order by id desc

Я пробовал что-то с SET ROWCOUNT 1, но в этом случае вы не можете использовать order by.

Я получаю

Select top 1 * from persons
where id = (select max(id) from persons where name ='Mike' )

Должен быть лучший путь!

Есть предложения?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 сентября 2010

Попробуйте выбрать во временную таблицу, упорядоченную по ID, затем SET ROWCOUNT 1 и выберите * из временной таблицы. (Это должно работать для любой верхней N с помощью SET ROWCOUNT N, в то время как ваше существующее решение будет работать только для верхней 1.)

0 голосов
/ 15 сентября 2010

SET ROWCOUNT 1 перед вашим оператором select, не проверял это, так как у меня нет mssql 6.5 (повезло, я думаю)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...