Есть ли лучший способ написать этот запрос SQL? - PullRequest
3 голосов
/ 31 июля 2009

Я хочу вернуть строку с самым большим create_dt. Это прекрасно работает, однако я хотел бы знать, есть ли более правильный способ сделать это?

select * from 
table1 
where job_no='101047' 
and 
create_dt in
     (select max(create_dt) from    
      table1 where job_no='101047')

Ответы [ 2 ]

15 голосов
/ 31 июля 2009

Как насчет:

Select top 1 *
from table1
where job_no = '101047'
order by create_dt desc
4 голосов
/ 31 июля 2009

ваш запрос будет возвращать более одного значения, если существует более одной строки create_dt
где job_no = '101047'

Это будет работать лучше

 Select top 1 * from table1 
 where job_no='101047'   
 order by create_dt desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...