몇 가지 코드를 검토하고 다른 사람이 한 일에 직면했으며 내 이유가 더 좋다고 생각할 수 없습니다. 그리고 그것은 아마도 그렇지 않습니다, 그래서, 어느 쪽이 더 낫고/더 안전하고/더 효능이 있습니까?MAX 대 1 위 - 어떤 것이 더 좋습니까?
SELECT MAX(a_date) FROM a_table WHERE a_primary_key = 5 GROUP BY event_id
또는 내가 두 번째 옵션을 갈 것
SELECT TOP 1 a_date FROM a_table WHERE a_primary_key = 5 ORDER BY a_date
하지만 이유는 잘 모르겠습니다, 그리고 맞아합니다.
SQL Server TOP 1은 rowNum = 1을 사용하는 Oracle과 다르게 동작합니다. 오라클은 실제로 주문 전에 먼저 발견 한 것이므로이 방법은 SQL Server에만 유효합니다. 이 TOP 1 대 Max()의 또 다른 이점은 해당 주문을 포함하는 한 원하는만큼의 열을 확보 할 수 있다는 것입니다. Max()를 사용하여 테스트 한 결과 GROUP BY를 사용해도 단 하나의 레코드 만 생성되지는 않는다고 판명되었습니다. 아마도 강한 모조 인 누군가가 서브 쿼리를 사용하지 않고 여러 열에서 최상위를 가져 오려면 한 행만 얻는 방법을 말할 수 있습니까? – gordon