2010-06-25 5 views
0

SQL 조회 순서

예를

SELECT name, dialcode 
FROM np_prefixes 
WHERE EXISTS (SELECT d.name 
      FROM np_prefixes d 
      GROUP BY d.name) 
GROUP BY name 

)

을 변경할 수 '존재'의 조회 순서는 내가 그것을에서 우연히 만나는 첫 번째 레코드를 얻기 위해 필요 어떻게

현재 받고있는 역순 예를 들어 반환 된 결과는 21379 (고가 ~ 저)이지만 21377 (고가 ~ 저)이 필요합니다.

답변

1

이 시도하지만 내가 당신의 질문을 이해 확실하지 않다 :

Select name, Min(dialcode) 
From np_prefixes 
Where Exists(Select d.name 
       From np_prefixes d 
       Group By d.name) 
Group By name 

을 실제로, 당신은 당신이 그것을 쓴대로 Where Exists이 (, 어쨌든 아무것도하지 않습니다 필요가 없습니다) :

Select name, Min(dialcode) 
From np_prefixes 
Where name is not null 
Group By name 
+0

'WHERE name is not null' 행이 필요 없다고 생각합니다. –

+0

@Marcus ... 그냥 존재하는 경우 null 이름에 대한 집계 행을 피하기 위해 ... –

1

ORDER BY DESC? 나는

1

EXISTS 절의 순서는 중요하지 않습니다. EXISTS는 조건 중 하나가 충족되는 즉시 true 또는 false를 반환합니다. 당신이 최종 출력이 다르게 주문하려면

, 당신은 ORDER BY 절을 지정해야합니다

나는 당신의 쿼리가이 같은이라고 생각
SELECT name, dialcode 
    FROM np_prefixes 
WHERE EXISTS (SELECT d.name 
        FROM np_prefixes d 
       GROUP BY d.name) 
GROUP BY name 
ORDER BY dialcode 
1

:

SELECT name, dialcode 
FROM np_prefixes 
GROUP BY name 

것은보세요 MAX() 또는 MIN()에서 그룹의 최고 또는 최저 값을 얻거나 ORDER BY 및 제한 절을 얻을 수 있습니다.