Oracle에서 쿼리 결과를 정렬하는 방법
Oracle에서는 "SELECT" 문과 "ORDER BY" 절을 사용하여 하나의 열 또는 여러 열의 쿼리 결과 집합을 오름차순 또는 내림차순으로 정렬할 수 있습니다. 구문은 "SELECT 필드입니다. 이름 FROM 데이터 테이블 이름. ORDER BY 필드 이름 [ASC|DESC]".
이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
Oracle에서는 "SELECT" 문과 "ORDER BY" 절을 사용하여 쿼리 정렬을 수행할 수 있습니다.
Oracle에서는 행이 데이터베이스에 삽입되는 순서와 관계없이 행 데이터 레코드가 지정되지 않은 순서로 테이블에 저장됩니다. 행 레코드를 열별로 오름차순 또는 내림차순으로 쿼리하려면 Oracle 데이터베이스에 정렬 방법을 명시적으로 지시해야 합니다.
예를 들어 모든 고객을 이름의 알파벳순으로 나열하거나 모든 고객을 낮은 신용 한도에서 높은 신용 한도 순으로 표시할 수 있습니다.
쿼리된 데이터를 정렬하려면 다음과 같이 SELECT 문에 ORDER BY
절을 추가하세요. ORDER BY
子句添加到SELECT语句中。
ORDER BY
子句可以按升序或降序对一列或多列的结果集进行排序。
语法:
SELECT 字段名, FROM table_name ORDER BY 字段名 [ASC | DESC] [NULLS FIRST | NULLS LAST]
要按列排序结果集,可以在ORDER BY子句之后列出该列。
按照列名是一个排序顺序,可以是:
ASC
表示按升序排序DESC
表示按降序排序
默认情况下,无论是否指定ASC
,ORDER BY
子句都按升序对行进行排序。如果要按降序对行进行排序,请明确使用DESC
。
NULLS FIRST
在非NULL
值之前放置NULL
值,NULLS LAST
在非NULL
值之后放置NULL
值。
ORDER BY
子句可以按多列对数据进行排序,每列可能有不同的排序顺序。
请注意,ORDER BY
子句总是SELECT
语句中的最后一个子句。
Oracle ORDER BY子句的例子
下面将使用示例数据库中的customers
表进行演示。
以下语句从客户(customers
)表中检索客户的:name
, address
和 credit limit
:
SELECT name, address, credit_limit FROM customers;
执行上面查询语句,得到以下结果 -
正如截图中所看到的,行记录的顺序是未指定的。
1、按列排序行示例
要按照字母顺序按升序排列客户名称,请使用以下语句:
SELECT name,address,credit_limit FROM customers ORDER BY name ASC;
执行上面示例代码,得到以下结果 -
ASC
指示Oracle按升序对行进行排序。但是ASC
是可选的,如果省略,则在默认情况下,ORDER BY
子句按指定的列按升序对行进行排序。
因此,下面的表达式:
ORDER BY name ASC
等效于 -
ORDER BY name
要按字母顺序降序排列客户名称,请在ORDER BY
子句中的列名之后显式使用DESC
,如下所示:
SELECT name, address, credit_limit FROM customers ORDER BY name DESC;
执行上面查询语句,得到以下结果 -
2、按多个列排序行示例
要对多列进行排序,可以用逗号分隔ORDER BY
子句中的每列。
请参阅示例数据库中的以下联系人(contacts
)表。
例如,要按first_name
进行按升序排序,并按降序对last_name
列进行排序,请使用以下语句:
SELECT first_name, last_name FROM contacts ORDER BY first_name, last_name DESC;
执行上面示例代码,可以看到如下结果 -
从上面截图中可以看到,contact_id
为91
和311
这两条记录的first_name
的值相同,last_name
的值是以降序来排列的。
在这个例子中,Oracle首先按first_name
升序对行进行排序,以创建初始结果集。 然后Oracle按降序对last_name
ORDER BY
절은 하나 이상의 열의 결과 집합을 오름차순 또는 내림차순으로 정렬할 수 있습니다. 구문: SELECT name, credit_limit,address FROM customers ORDER BY 2 DESC, 1;

열 이름에 따른 정렬 순서입니다.
- 🎜
ASC
는 오름차순 정렬을 의미합니다. 🎜 - 🎜
DESC
는 내림차순 정렬을 의미합니다🎜
ASC
지정 여부에 관계없이 < code>ORDER BY 절은 모두 행을 오름차순으로 정렬합니다. 행을 내림차순으로 정렬하려면 DESC
를 명시적으로 사용하세요. 🎜🎜
NULLS FIRST
는 NULL
값을 NULL
이 아닌 값 앞에 배치하고 NULLS LAST
앞에 배치합니다. non-< code>NULL 값 뒤에 NULL
값을 입력하세요. 🎜🎜 ORDER BY
절은 여러 열을 기준으로 데이터를 정렬할 수 있으며, 각 열은 서로 다른 정렬 순서를 가질 수 있습니다. 🎜🎜 ORDER BY
절은 항상 SELECT
문의 마지막 절이라는 점에 유의하세요. 🎜Oracle ORDER BY 절의 예
🎜다음은 데모용 샘플 데이터베이스의customers
테이블을 사용합니다. 🎜🎜
고객
) 테이블에서 고객의 이름
, 주소
및 신용 한도
를 검색합니다. 🎜 SELECT name, credit_limit,address FROM customers ORDER BY credit_limit DESC, name;

SELECT country_id, city, state FROM locations ORDER BY state DESC;

ASC
는 Oracle에 행을 오름차순으로 정렬하도록 지시합니다. 그러나 ASC
는 선택 사항이며 생략할 경우 기본적으로 ORDER BY
절은 지정된 열을 기준으로 오름차순으로 행을 정렬합니다. 🎜🎜따라서 다음 표현식: 🎜SELECT country_id, city, state FROM locations ORDER BY state ASC NULLS FIRST;
SELECT country_id, city, state FROM locations ORDER BY state ASC NULLS LAST;
ORDER BY
절 code>에서 열 이름 뒤에 를 명시적으로 사용합니다. DESC
, 아래와 같이: 🎜SELECT customer_id, name FROM customers ORDER BY UPPER( name );

ORDER BY
절의 각 열을 쉼표로 구분하면 됩니다. 🎜🎜샘플 데이터베이스에서 다음 연락처(연락처
) 테이블을 참조하세요. 🎜🎜예를 들어 first_name
을 기준으로 오름차순으로 정렬하고 last_name
열을 내림차순으로 정렬하려면 다음 문을 사용하세요. 🎜rrreee🎜위의 예제 코드를 실행하면 다음과 같은 작업을 수행할 수 있습니다. 다음 결과 얻기-🎜🎜를 참조하세요.
contact_id
는 두 레코드 91
및 311<의 <code>first_name
입니다. /code> 값은 동일하며, last_name
값이 내림차순으로 정렬되어 있습니다. 🎜🎜이 예에서 Oracle은 먼저 first_name
을 기준으로 행을 오름차순으로 정렬하여 초기 결과 집합을 생성합니다. 그런 다음 Oracle은 last_name
의 초기 결과 집합을 내림차순으로 정렬합니다. 🎜🎜아래와 유사한 결과 보기: 🎜🎜🎜🎜🎜위 결과에서: 🎜- 首先,按
first_name
升序排序。 - 其次,如果两个名字相同,按
last_name
降序排列,如Daniel Glass
和Daniel Costner
,Dianne Sen
和Dianne Derek
,Doretha Tyler
和Dorotha Wong
。
3、按列位置排序行示例
不需要指定用于排序数据的列名称。如果您愿意,可以使用ORDER BY
子句中列的位置。
请参考下语句 -
SELECT name, credit_limit,address FROM customers ORDER BY 2 DESC, 1;
在这个例子中,name
列的位置是1
,credit_limit
列的位置是2
。相当于以下查询语句 -
SELECT name, credit_limit,address FROM customers ORDER BY credit_limit DESC, name;
在ORDER BY
子句中,使用这些列位置来指示Oracle对行进行排序。
4、用NULL值排序行的示例
请参阅示例数据库中的以下地区(locations
)表:
以下语句按城市(city
)和州(state
)检索位置并对其进行排序:
SELECT country_id, city, state FROM locations ORDER BY state DESC;
执行上面查询语句,得到以下结果 -
state
列有NULL
值,这意味着state
数据与某些城市(例如:Beijing
, Hiroshima
和 London
)无关。
当使用非NULL
值对混合NULL
进行排序时,Oracle允许指定哪个应该首先出现。
例如,以下语句按升序对state
列进行排序,并首先将NULL
值放置在前面。
SELECT country_id, city, state FROM locations ORDER BY state ASC NULLS FIRST;
要放置NULL
值在后面,可以使用NULLS LAST
,如下面的语句所示:
SELECT country_id, city, state FROM locations ORDER BY state ASC NULLS LAST;
执行上面示例查询语句,得到以下结果:
5、按函数或表达式排序数据
ORDER BY
子句可在一列上应用一个函数,例如字符串函数,数学函数等,并按函数的结果对数据进行排序。
例如,以下语句使用ORDER BY
子句中的UPPER()
函数来区分客户名称的大小写:
SELECT customer_id, name FROM customers ORDER BY UPPER( name );
执行上面查询语句,得到以下结果 -
推荐教程:《Oracle教程》
위 내용은 Oracle에서 쿼리 결과를 정렬하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Oracle에 대한 솔루션은 개설 할 수 없습니다. 1. 데이터베이스 서비스 시작; 2. 청취자를 시작하십시오. 3. 포트 충돌을 확인하십시오. 4. 환경 변수를 올바르게 설정하십시오. 5. 방화벽이나 바이러스 백신 소프트웨어가 연결을 차단하지 않도록하십시오. 6. 서버가 닫혀 있는지 확인하십시오. 7. RMAN을 사용하여 손상된 파일을 복구하십시오. 8. TNS 서비스 이름이 올바른지 확인하십시오. 9. 네트워크 연결 확인; 10. Oracle 소프트웨어를 다시 설치하십시오.

Oracle Cursor Closure 문제를 해결하는 방법에는 다음이 포함됩니다. Close 문을 사용하여 커서를 명시 적으로 닫습니다. For Update 절에서 커서를 선언하여 범위가 종료 된 후 자동으로 닫히십시오. 연관된 PL/SQL 변수가 닫히면 자동으로 닫히도록 사용 절에서 커서를 선언하십시오. 예외 처리를 사용하여 예외 상황에서 커서가 닫혀 있는지 확인하십시오. 연결 풀을 사용하여 커서를 자동으로 닫습니다. 자동 제출을 비활성화하고 커서 닫기를 지연시킵니다.

Oracle에서 FOR 루프 루프는 커서를 동적으로 생성 할 수 있습니다. 단계는 다음과 같습니다. 1. 커서 유형을 정의합니다. 2. 루프를 만듭니다. 3. 커서를 동적으로 만듭니다. 4. 커서를 실행하십시오. 5. 커서를 닫습니다. 예 : 커서는 상위 10 명의 직원의 이름과 급여를 표시하기 위해주기별로 만들 수 있습니다.

Oracle 데이터베이스 페이징은 rownum pseudo-columns 또는 fetch 문을 사용하여 구현합니다. Fetch 문은 지정된 첫 번째 행 수를 얻는 데 사용되며 간단한 쿼리에 적합합니다.

Oracle 데이터베이스를 중지하려면 다음 단계를 수행하십시오. 1. 데이터베이스에 연결하십시오. 2. 즉시 종료; 3. 셧다운은 완전히 중단됩니다.

Centos 시스템에서 Hadoop 분산 파일 시스템 (HDF)을 구축하려면 여러 단계가 필요합니다. 이 기사는 간단한 구성 안내서를 제공합니다. 1. 초기 단계에서 JDK를 설치할 준비 : 모든 노드에 JavadevelopmentKit (JDK)을 설치하면 버전이 Hadoop과 호환되어야합니다. 설치 패키지는 Oracle 공식 웹 사이트에서 다운로드 할 수 있습니다. 환경 변수 구성 : /etc /프로파일 파일 편집, Java 및 Hadoop 설정 설정 시스템에서 JDK 및 Hadoop의 설치 경로를 찾을 수 있습니다. 2. 보안 구성 : SSH 비밀번호가없는 로그인 SSH 키 : 각 노드에서 ssh-keygen 명령을 사용하십시오.

SQL 문은 Oracle의 동적 SQL을 사용하여 런타임 입력을 기반으로 작성 및 실행할 수 있습니다. 단계에는 다음이 포함됩니다 : 동적으로 생성 된 SQL 문을 저장할 빈 문자열 변수 준비. 즉시 실행 또는 준비 명령문을 사용하여 동적 SQL 문을 컴파일하고 실행하십시오. 바인드 변수를 사용하여 사용자 입력 또는 기타 동적 값을 동적 SQL로 전달하십시오. 동적 SQL 문을 실행하려면 즉시 실행 또는 실행을 사용하십시오.

데이터베이스 문자 세트를 확인하여 데이터와 일치하는지 확인하여 Oracle Garbled 문제를 해결할 수 있습니다. 클라이언트 문자 세트를 데이터베이스와 일치하도록 설정하십시오. 데이터베이스 문자 세트와 일치하도록 데이터 변환 또는 열 문자 세트를 수정하십시오. 유니 코드 문자 세트를 사용하고 멀티 바이트 문자 세트를 피하십시오. 데이터베이스 및 클라이언트의 언어 설정이 올바른지 확인하십시오.
