행 정렬(Visual Database Tools)

적용 대상: SQL Server

쿼리 결과에서 행을 정렬할 수 있습니다. 즉, 값이 결과 집합의 행 순서를 결정하는 특정 열 또는 열 집합의 이름을 지정할 수 있습니다.

참고 항목

정렬 순서는 열의 데이터 정렬 순서에 따라 부분적으로 결정됩니다. 데이터 정렬 대화 상자에서 데이터 정렬 순서를 변경할 수 있습니다.

쿼리 결과를 정렬하는 방법에는 여러 가지가 있습니다.

  • 행을 오름차순 또는 내림차순으로 정렬할 수 있습니다. 기본적으로 SQL에서는 열 정렬을 사용하여 오름차순으로 행을 정렬합니다. 예를 들어, 오름차순 가격으로 책 제목을 정렬하려면 price 열을 기준으로 행을 정렬하면 됩니다. 결과 SQL은 다음과 같을 수 있습니다.

    SELECT *  
    FROM titles  
    ORDER BY price  
    

    반면에 더 비싼 책으로 제목을 정렬하려는 경우 가장 높은 가격순을 명시적으로 지정할 수 있습니다. 즉, 결과 행을 가격 열의 내림차순 값으로 정렬해야 합니다. 결과 SQL은 다음과 같을 수 있습니다.

    SELECT *  
    FROM titles  
    ORDER BY price DESC  
    
  • 여러 열을 기준으로 정렬할 수 있습니다. 예를 들어 각 작성자마다 하나의 행으로 결과 집합을 만들고 상태별로 먼저 정렬한 다음 도시별로 정렬할 수 있습니다. 결과 SQL은 다음과 같을 수 있습니다.

    SELECT *  
    FROM authors   
    ORDER BY state, city  
    
  • 결과 집합에 표시되지 않는 열을 기준으로 정렬할 수 있습니다. 예를 들어 가격이 표시되지 않더라도 가장 비싼 제목 먼저 결과 집합을 만들 수 있습니다. 결과 SQL은 다음과 같을 수 있습니다.

    SELECT title_id, title  
    FROM titles  
    ORDER BY price DESC  
    
  • 파생 열을 기준으로 정렬할 수 있습니다. 예를 들어 각 행에 책 제목이 포함된 결과 집합을 만들어 복사본당 가장 높은 로열티를 지불하는 책이 먼저 표시되도록 할 수 있습니다. 결과 SQL은 다음과 같을 수 있습니다.

    SELECT title, price * royalty / 100 as royalty_per_unit  
    FROM titles  
    ORDER BY royalty_per_unit DESC  
    

    (책 하나로 복사본당 획득할 수 있는 로열티를 계산하는 수식을 강조합니다.)

    파생 열을 계산하려면 앞의 예시와 같이 SQL 구문을 사용하거나 스칼라 값을 반환하는 사용자 정의 함수를 사용할 수 있습니다. 사용자 정의 함수에 대한 자세한 내용은 SQL Server 설명서를 참조하세요.

  • 그룹화된 행을 정렬할 수 있습니다. 예를 들어, 각 행에 도시와 해당 도시에 있는 작성자 수를 나타내는 결과 집합을 만들어 작성자가 많은 도시가 먼저 표시되도록 할 수 있습니다. 결과 SQL은 다음과 같을 수 있습니다.

    SELECT city, state, COUNT(*)  
    FROM authors  
    GROUP BY city, state  
    ORDER BY COUNT(*) DESC, state  
    

    쿼리는 state를 보조 정렬 열로 사용합니다. 따라서 두 상태에 동일한 수의 작성자가 있는 경우 해당 상태는 사전순으로 정렬됩니다.

  • 국가별 데이터를 사용하여 정렬할 수 있습니다. 해당 열에 대한 기본 규칙과 다른 데이터 정렬 규칙을 사용하여 열을 정렬할 수 있습니다. 예를 들어 Jaime Patiño의 모든 책 제목을 검색하는 쿼리를 작성할 수 있습니다. 제목을 사전순으로 표시하려면 title 열에 스페인어 데이터 정렬 순서를 사용합니다. 결과 SQL은 다음과 같을 수 있습니다.

    SELECT title  
    FROM   
        authors   
        INNER JOIN   
            titleauthor   
            ON authors.au_id   
            =  titleauthor.au_id   
            INNER JOIN  
                titles   
                ON titleauthor.title_id   
                =  titles.title_id   
    WHERE   
         au_fname = 'Jaime' AND   
         au_lname = 'Patiño'  
    ORDER BY   
         title COLLATE SQL_Spanish_Pref_CP1_CI_AS  
    

참고 항목

쿼리 결과 정렬 및 그룹화(Visual Database Tools)
쿼리 및 뷰 디자인 방법 도움말 항목(Visual Database Tools)