SQL ORDER BY


SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL LIKE
SQL ORDER BY
SQL 함수
SQL COUNT
SQL GROUP BY
SQL HAVING
SQL 별명
SQL 연결
SQL 외부연결
SQL Subquery
SQL UNION
SQL UNION ALL
SQL INTERSECT
SQL MINUS
SQL CONCATENATE
SQL SUBSTRING
SQL TRIM


사이트안내




  SQL > SQL인스트럭션 > Order By

현재까지 우리는 SELECTWHERE 이 두개의 인스트럭션을 사용하여 도표에서 데이터를 찾는 방법을 배웠습니다.하지만 이런 데이터를 배열하는 방법은 아직 언급하지 않았습니다. 이것은 사실 중요한 문제입니다. 사실상 찾아낸 데이터를 자주 체계적으로 나타낼 필요성이 있습니다. 작은 것으로 부터 큰것으로 (ascending) 나 큰것으로 부터 작은것으로 (descending). 이런 상황에서는 ORDER BY 이 인스트럭션을 이용하여 우리 목적을 달성할수 있습니다.

ORDER BY 의 용어는 아래와 같습니다.

SELECT "필드명"
FROM "도표명"
[WHERE "조건"]
ORDER BY "도표명" [ASC, DESC];

[] 는 WHERE 절이 꼭 필요한것이 아님을 대표합니다. 하지만 WHERE 절이 존재할 경우 ORDER BY 절 앞에 있습니다. ASC 는 결과가 작은것으로 부터 큰것으로의 순서로 열거하였음을 의미하며 DESC 는 결과가 큰것으로부터 작은것으로의 순서로 열거함을 의미합니다. 두가지 모두 쓰지 않았을 경우 우리는 ASC 를 사용합니다.

우리는 여러개의 부동한 필드로 순서를 배열할수 있습니다. 이런 상황에서 ORDER BY 절의 용어는 아래와 같습니다(두개의 필드가 있는것으로 가설).

ORDER BY ""필드 1" [ASC, DESC], ""필드 2" [ASC, DESC]

만약 두 필드 모두 작은것으로 부터 큰것의 순서로 선택한다면 절의 결과는 “필드1”에 따라 작은것으로 부터 배열합니다. 만약 여러개의 데이터가 “필드1”의 수치와 같을 경우 “필드2”에 따라 작은것으로 부터 큰것의 순서로 배열합니다.

예를 들어 만약 Sales 필드의 작은것으로 부터 큰것의 순서에 따라 Store_Information 도표중의 데이터를 열거할 경우 윗 예에서 우리는 필드명으로 배열순서의 증거를 지정합니다.

Store_Information 도표
Store_NameSalesTxn_Date
Los Angeles150005-Jan-1999
San Diego25007-Jan-1999
San Francisco30008-Jan-1999
Boston70008-Jan-1999

우리는 입력합니다,

SELECT Store_Name, Sales, Txn_Date
FROM Store_Information
ORDER BY Sales DESC;

결과:

Store_Name Sales Txn_Date
Los Angeles 1500 Jan-05-1999
Boston 700 Jan-08-1999
San Francisco 300 Jan-08-1999
San Diego 250 Jan-07-1999

필드명외에 우리는 필드의 순서를 (SQL어구중의 순서에 의하여) 사용할수도 있습니다. SELECT 후 첫번째 필드가 1이고 두번째 필드가 2,이렇게 유추합니다. 윗 예에서 우리는 아래 SQL 절로 완전히 같은 효과를 얻을수 있습니다.

SELECT Store_Name, Sales, Txn_Date
FROM Store_Information
ORDER BY 2 DESC;

SQL 함수 >>



Copyright © 2014   1keydata.com   All Rights Reserved