検索
ホームページデータベースOracleORACLE の ORDER BY のさまざまなソートについて話しましょう

この記事では、Oracle に関する関連知識をお届けします。主に、単一フィールドによる並べ替え、複数フィールドによる並べ替え、部分文字列による並べ替えなど、ORDER BY の複数の並べ替えに関連する問題を紹介します。これはみんなに役立ちます。

ORACLE の ORDER BY のさまざまなソートについて話しましょう

推奨チュートリアル: 「Oracle Learning Tutorial

1. 単一フィールドによる並べ替え

昇順: ORDER BY ASC (デフォルト)

降順: ORDER BY DESC

指定された順序でクエリ結果を返します。実際にデータを抽出したりレポートを生成したりするときは、通常、特定の順序でクエリ結果を表示する必要があります。たとえば、部門に雇用されている従業員に関する情報を表示したい場合です。

SELECT empno, ename, hiredate FROM emp WHERE deptno = 10 ORDER BY hiredate ASC;

クエリ結果を並べ替えるためにこの種のステートメントを作成できる人はたくさんいますが、「ORDER BY recruitate ASC」に加えて、「ORDER BY 3」としても記述できます。 ASC" 、3 番目の列による並べ替えを意味します。

SELECT empno, ename, hiredate FROM emp WHERE deptno = 10 ORDER BY 3 ASC;

値が不確実な場合、この方法を使用すると非常に便利です。ただし、

データを使用して列の位置を置き換えるのは、次の順序でのみ使用できます。 by 句。他の場所では使用できません。

2. 複数のフィールドで並べ替えます。

複数の列で並べ替えて増加または減少があった場合はどうすればよいですか?たとえば、部門番号で昇順、給与で降順に並べ替える場合、ASC は昇順、DESC は降順という 2 つのキーワードがあるため、order by の後に 2 つの列を追加し、それぞれ ASC と DESC をマークします。

SELECT empno, deptno, sal, ename, job FROM emp ORDER BY 2 ASC, 3 DESC;

次の図に示すように、次のことを図の形式で紹介します。複数の列を並べ替えるとき、前の列に重複した値がある場合 (たとえば、 deptno = 10 の場合、データは 3 行あります)、その後の並べ替えはのみ役に立ちます。これは、前の列でデータをいくつかのグループに分割し、各グループのデータを次の列で並べ替えることと同じです。

3. 部分文字列による並べ替え

部分文字列による並べ替え顧客の電話番号を最後の番号の順序で記録する簡単な方法があります。検索時にクエリの範囲をすばやく絞り込み、顧客の認識を高めることができます。このように並べ替えたい場合はどうすればよいでしょうか?この関数を使用して、次の数ビットに必要な情報を取得するだけです。

SELECT last_name AS 名称,
       phone_number AS 号码,
       salary as 工资,
       substr(phone_number, -4) AS 尾号
  FROM hr.employees
 WHERE rownum <p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/6df7db13e602f27c62ef940d1b15201d-3.png?x-oss-process=image/resize,p_40" class="lazy" alt=""    style="max-width:90%"  style="max-width:90%"></p><p> データをクエリできる限り、対応する情報に従って並べ替えることができることがわかります。 </p><h2 id="TRANSLATE">4. TRANSLATE</h2><blockquote><p> 構文形式: TRANSLATE(expr, from_string, to_string)</p></blockquote><p>例は次のとおりです: </p><pre class="brush:php;toolbar:false">SELECT TRANSLATE( 'ab 你好 bcadefg', 'abcdefg', '1234567' ) AS NEW_STR FROM DUAL;

from_string と to_string は文字単位であり、対応する文字が 1 つずつ置き換えられます。

to_string が空の場合は、null 値を返します。

SELECT TRANSLATE( 'ab 你好 bcadefg', 'abcdefg', '' ) AS NEW_STR FROM DUAL;

to_string の対応する位置に文字がない場合は、null 値を返します。 to_string、delete from_string にリストされている文字が削除されます。

SELECT TRANSLATE( 'ab 你好 bcadefg', '1abcdefg', '1' ) AS NEW_STR FROM DUAL;

5. 数字と文字が混在する文字列を文字で並べ替えます

まず、次のように VIEW を作成します:

CREATE OR REPLACE VIEW V 
as 
SELECT empno || ' ' || ename AS data FROM emp;
select * from V;

この要件は少し難しくなりますが、中に文字 (つまり、元の列の名前) が見えますか?その中でアルファベット順に並べる必要があります (列 ename)。

次に、最初に文字を削除する必要があります。translate の replace 関数を使用して、数字とスペースを空のスペースに置き換えることができます:

SELECt data, translate (data, '- 0123456789', '-' )AS ename
  FROM v
 ORDER BY 2;

6 . ソートされた null 値の処理

Oracle はデフォルトで null 値を後ろにソートします。null 値 (emp.comm など) を前に表示したい場合はどうすればよいですか? NVL (comm など) を使用しますか? 、-1)?

SELECT ename, sal, comm, nvl(comm, - 1) order_col FROM emp ORDER BY 4;

也许很多人都是用的这种方法,但这种方法需要对列类型及其中保存的数据有所了解才行,而且保存的数据如果有变化,该语句就要重新维护。
其实可以用关键字 NULLS FIRST和 NULLS LAST。

空值在前

SELECT ename, sal, comm FROM emp ORDER BY 3 NULLS FIRST;

 空值在后

SELECT ename, sal, comm FROM emp ORDER BY 3 NULLS LAST;

 是不是要方便得多?

7. 根据条件取不同列中的值来排序

有时排序的要求会比较复杂,比如:领导对工资在1000到2000元之间的员工更感兴趣,于是要求工资在这个范围的员工要排在前面,以便优先査看。
对于这种需求,我们可以在查询中新生成一列,用多列排序的方法处理:

SELECT empno AS 编码,
       ename AS 姓名,
       CASE
         WHEN sal > 1000 AND sal <p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/f6525214b6205d8e3e4c4cd75819a680-14.png?x-oss-process=image/resize,p_40" class="lazy" alt=""    style="max-width:90%"  style="max-width:90%"> </p><p> </p><p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/f6525214b6205d8e3e4c4cd75819a680-15.png?x-oss-process=image/resize,p_40" class="lazy" alt=""    style="max-width:90%"  style="max-width:90%"></p><p>可以看到,950与2850都排在了后面,也可以不显示级别,直接把 case when放在order by中</p><pre class="brush:php;toolbar:false">SELECT empno AS 编码, ename AS 姓名, sal AS工资
  FROM emp
 WHERE deptno = 30
 ORDER BY CASE
            WHEN sal >= 1000 AND sal <p> <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/f6525214b6205d8e3e4c4cd75819a680-16.png?x-oss-process=image/resize,p_40" class="lazy" alt=""    style="max-width:90%"  style="max-width:90%"><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/067/d778c41f53bfbf6813d884b027f6127c-17.png?x-oss-process=image/resize,p_40" class="lazy" alt=""    style="max-width:90%"  style="max-width:90%"></p><p>推荐教程:《<a href="https://www.php.cn/course/list/52.html" target="_blank">Oracle教程</a>》</p>

以上がORACLE の ORDER BY のさまざまなソートについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はCSDNで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
MySQLとOracle:機能と機能の重要な違いMySQLとOracle:機能と機能の重要な違いApr 18, 2025 am 12:15 AM

MySQLとOracleには、パフォーマンス、スケーラビリティ、セキュリティに利点があります。 1)パフォーマンス:MySQLは読み取り操作と高い並行性に適しており、Oracleは複雑なクエリとビッグデータ処理に優れています。 2)スケーラビリティ:MySQLはマスタースレーブの複製とシャードを通じて拡張され、OracleはRACを使用して高可用性と負荷分散を提供します。 3)セキュリティ:MySQLはきめ細かい許可制御を提供しますが、Oracleにはより包括的なセキュリティ機能と自動化ツールがあります。

Oracle:データベース管理のパワーハウスOracle:データベース管理のパワーハウスApr 17, 2025 am 12:14 AM

Oracleは、高性能、信頼性、セキュリティのために、データベース管理の「パワーハウス」と呼ばれています。 1。Oracleは、複数のオペレーティングシステムをサポートするリレーショナルデータベース管理システムです。 2.スケーラビリティ、セキュリティ、高可用性を備えた強力なデータ管理プラットフォームを提供します。 3。Oracleの作業原則には、データストレージ、クエリ処理、トランザクション管理が含まれ、インデックス作成、パーティション化、キャッシュなどのパフォーマンス最適化テクノロジーをサポートします。 4.使用の例には、テーブルの作成、データの挿入、ストアドプロシージャの書き込みが含まれます。 5.パフォーマンス最適化戦略には、インデックス最適化、パーティションテーブル、キャッシュ管理、クエリ最適化が含まれます。

オラクルは何を提供しますか?製品とサービスが説明しましたオラクルは何を提供しますか?製品とサービスが説明しましたApr 16, 2025 am 12:03 AM

OracleOfferScolreansiveSiveSiveOfProductsandServicesIncludingDatabaseManagement、CloudComputing、Enterpriseoftware、AndhardWaresolutions.1)OracLedatabaseSupportswithipersiveManagementFeatures.2)Oraclecloudinfrastrutrutruture(oci)は

Oracleソフトウェア:データベースからクラウドまでOracleソフトウェア:データベースからクラウドまでApr 15, 2025 am 12:09 AM

データベースからクラウドコンピューティングへのOracleソフトウェアの開発履歴には、次のものが含まれます。1。1977年に発信され、当初はリレーショナルデータベース管理システム(RDBMS)に焦点を当て、すぐにエンタープライズレベルのアプリケーションの最初の選択肢になりました。 2。ミドルウェア、開発ツール、ERPシステムに拡張して、エンタープライズソリューションの完全なセットを形成します。 3。OracleデータベースはSQLをサポートし、小規模から大規模なエンタープライズシステムに適した高性能とスケーラビリティを提供します。 4.クラウドコンピューティングサービスの台頭により、Oracleの製品ラインがさらに拡大し、必要な企業のあらゆる側面を満たしています。

MySQL対Oracle:長所と短所MySQL対Oracle:長所と短所Apr 14, 2025 am 12:01 AM

MySQLおよびOracleの選択は、コスト、パフォーマンス、複雑さ、および機能的要件に基づいている必要があります。1。MySQLは、予算が限られているプロジェクトに適しており、インストールが簡単で、中小サイズのアプリケーションに適しています。 2。Oracleは大規模な企業に適しており、大規模なデータと高い並行リクエストの処理に優れたパフォーマンスを発揮しますが、構成はコストと複雑です。

Oracleの目的:ビジネスソリューションとデータ管理Oracleの目的:ビジネスソリューションとデータ管理Apr 13, 2025 am 12:02 AM

Oracleは、企業が製品とサービスを通じてデジタル変革とデータ管理を達成するのを支援します。 1)Oracleは、データベース管理システム、ERP、CRMシステムなどの包括的な製品ポートフォリオを提供し、企業がビジネスプロセスを自動化および最適化するのを支援します。 2)E-BusinessSuiteやFusionApplicationsなどのOracleのERPシステムは、エンドツーエンドのビジネスプロセスの自動化を実現し、効率を改善し、コストを削減しますが、実装とメンテナンスコストが高くなります。 3)OracLedatabaseは、高い並行性と高可用性データ処理を提供しますが、ライセンスコストが高くなります。 4)パフォーマンスの最適化とベストプラクティスには、インデックス作成と分割技術の合理的な使用、定期的なデータベースのメンテナンス、コーディング仕様のコンプライアンスが含まれます。

Oracle Libraryの故障を削除する方法Oracle Libraryの故障を削除する方法Apr 12, 2025 am 06:21 AM

Oracleがライブラリの構築に失敗した後、失敗したデータベースを削除する手順:SYSユーザー名を使用してターゲットインスタンスに接続します。ドロップデータベースを使用して、データベースを削除します。クエリv $データベースデータベースが削除されていることを確認します。

Oracle Loopでカーソルを作成する方法Oracle Loopでカーソルを作成する方法Apr 12, 2025 am 06:18 AM

Oracleでは、forループループは動的にカーソルを作成できます。手順は次のとおりです。1。カーソルタイプを定義します。 2。ループを作成します。 3.カーソルを動的に作成します。 4。カーソルを実行します。 5。カーソルを閉じます。例:カーソルをサイクルごとに作成して、上位10人の従業員の名前と給与を表示できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。