目次
テーブルを使用します。
ホームページ データベース Oracle Oracleでクエリ結果を並べ替える方法

Oracleでクエリ結果を並べ替える方法

Jan 13, 2022 am 11:33 AM
oracle

Oracle では、「SELECT」ステートメントと「ORDER BY」句を使用してクエリを並べ替えることができます。1 つ以上の列のクエリ結果セットを昇順または降順で並べ替えることができます。構文 " SELECT フィールド名" FROM データ テーブル名 ORDER BY フィールド名 [ASC|DESC]"。

Oracleでクエリ結果を並べ替える方法

このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle では、「SELECT」ステートメントと「ORDER BY」句を使用してクエリを並べ替えることができます。

Oracle では、行がデータベースに挿入される順序に関係なく、行データ レコードは指定されていない順序でテーブルに格納されます。行レコードを列ごとに昇順または降順でクエリするには、Oracle データベースにソート方法を明示的に指示する必要があります。

たとえば、すべての顧客を名前のアルファベット順にリストしたり、すべての顧客を与信限度額の最低から最高の順に表示したりすることができます。

クエリされたデータを並べ替えるには、次のように ORDER BY 句を SELECT ステートメントに追加します。

ORDER BY 句は、1 つ以上の列の結果セットを昇順または降順で並べ替えることができます。

構文:

SELECT
    字段名,
FROM
    table_name
ORDER BY
    字段名 [ASC | DESC] [NULLS FIRST | NULLS LAST]
ログイン後にコピー

結果セットを列で並べ替えるには、ORDER BY 句の後に列をリストします。

#これは列名に基づく並べ替え順序であり、次のようになります。

  • #ASC

    は昇順で並べ替えることを意味します

  • DESC

    は降順での並べ替えを意味します

  • デフォルトでは、
ORDER BY

句が使用されるかどうかに関係なく使用されます。 ##ASC を指定すると、どちらも行を昇順にソートします。行を降順に並べ替える場合は、明示的に DESC を使用します。
NULLS FIRST

NULL 値を非 NULL 値の前に配置し、NULLS LAST を非値の前に配置します。 -##NULL 値を #NULL 値の後に配置します。 ORDER BY 句では、複数の列でデータを並べ替えることができ、各列の並べ替え順序が異なる場合があります。

ORDER BY 句は常に

SELECT

ステートメントの最後の句であることに注意してください。 Oracle ORDER BY 句の例以下では、デモのためにサンプル データベースの

customers

テーブルを使用します。

次のステートメントは、顧客 (

customersOracleでクエリ結果を並べ替える方法) テーブルから顧客のテーブルを取得します:

name

, addressおよび credit limit: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>SELECT name, address, credit_limit FROM customers;</pre><div class="contentsignin">ログイン後にコピー</div></div>上記のクエリ ステートメントを実行すると、次の結果が得られます。

スクリーンショットでわかるように、 、行レコード 順序は指定されていません。

Oracleでクエリ結果を並べ替える方法

1. 列による行の並べ替えの例

#顧客名をアルファベットの昇順に並べ替えるには、次のステートメントを使用します。

SELECT name,address,credit_limit
FROM customers
ORDER BY name ASC;
ログイン後にコピー
上記のコード例を実行すると、次の結果が得られます。

ASC

は、Oracle に行を昇順で並べ替えるよう指示します。ただし、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. 複数の列による行の並べ替えの例

Oracleでクエリ結果を並べ替える方法

複数の列を並べ替えるには、文内の各列をカンマで区切ります ORDER BYサンプル データベースの次の連絡先 (

contacts

) テーブルを参照してください。 たとえば、

first_name

を昇順に並べ替え、last_name 列を降順に並べ替えるには、次のステートメントを使用します。

SELECT first_name, last_name
FROM contacts
ORDER BY first_name, last_name DESC;
ログイン後にコピー

Execute From上記のサンプル コードを実行すると、次の結果が表示されます。##上のスクリーンショットからわかるように、

contact_id

91

です。および Oracleでクエリ結果を並べ替える方法311

これら 2 つのレコードの

first_name の値は同じであり、last_name の値は降順に並べられます。 この例では、Oracle は最初に行を first_name で昇順に並べ替えて、最初の結果セットを作成します。次に、Oracle は last_name の最初の結果セットを降順にソートします。

次のような結果を参照してください:

上記の結果:

  • 首先,按first_name升序排序。
  • 其次,如果两个名字相同,按last_name降序排列,如Daniel GlassDaniel CostnerDianne SenDianne DerekDoretha TylerDorotha Wong

3、按列位置排序行示例

不需要指定用于排序数据的列名称。如果您愿意,可以使用ORDER BY子句中列的位置。

请参考下语句 -

SELECT name, credit_limit,address
FROM customers
ORDER BY 2 DESC, 1;
ログイン後にコピー

在这个例子中,name列的位置是1credit_limit列的位置是2。相当于以下查询语句 -

SELECT name, credit_limit,address
FROM customers
ORDER BY credit_limit DESC, name;
ログイン後にコピー

ORDER BY子句中,使用这些列位置来指示Oracle对行进行排序。

4、用NULL值排序行的示例

请参阅示例数据库中的以下地区(locations)表:

Oracleでクエリ結果を並べ替える方法

以下语句按城市(city)和州(state)检索位置并对其进行排序:

SELECT country_id, city, state
FROM locations 
ORDER BY state DESC;
ログイン後にコピー

执行上面查询语句,得到以下结果 -

Oracleでクエリ結果を並べ替える方法

state列有NULL值,这意味着state数据与某些城市(例如:Beijing, HiroshimaLondon)无关。

当使用非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;
ログイン後にコピー

执行上面示例查询语句,得到以下结果:

Oracleでクエリ結果を並べ替える方法

5、按函数或表达式排序数据

ORDER BY子句可在一列上应用一个函数,例如字符串函数,数学函数等,并按函数的结果对数据进行排序。

例如,以下语句使用ORDER BY子句中的UPPER()函数来区分客户名称的大小写:

SELECT customer_id, name
FROM customers
ORDER BY UPPER( name );
ログイン後にコピー

执行上面查询语句,得到以下结果 -

Oracleでクエリ結果を並べ替える方法

推荐教程:《Oracle教程

以上がOracleでクエリ結果を並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Oracleデータベースをインポートする方法 Oracleデータベースをインポートする方法 Apr 11, 2025 pm 08:06 PM

データインポート方法:1。SQLLOADERユーティリティを使用します。データファイルを準備し、制御ファイルを作成し、SQLLoaderを実行します。 2。IMP/EXPツールを使用します。データをエクスポートし、データをインポートします。ヒント:1。ビッグデータセットに推奨されるSQL*ローダー。 2。ターゲットテーブルが存在する必要があり、列定義が一致します。 3。インポート後、データの整合性を検証する必要があります。

Oracleの表空間サイズを確認する方法 Oracleの表空間サイズを確認する方法 Apr 11, 2025 pm 08:15 PM

Oracle Tablespaceサイズを照会するには、次の手順に従ってください。クエリを実行して、TableSpace名を決定します。DBA_TABLESPACesからTableSpace_Nameを選択します。クエリを実行してテーブルスペースのサイズをクエリします:sum(bytes)をtotal_size、sum(bytes_free)asavail_space、sum(bytes) - sum(bytes_free)as sum(bytes_free)as dba_data_files from tablespace_

Oracleのインストールをアンインストールする方法は失敗しました Oracleのインストールをアンインストールする方法は失敗しました Apr 11, 2025 pm 08:24 PM

Oracleインストール障害のためのアンインストールメソッド:Oracleサービスを閉じ、Oracleプログラムファイルとレジストリキーを削除し、Oracle環境変数をアンインストールし、コンピューターを再起動します。アンインストールが失敗した場合、Oracle Universal Uninstallツールを使用して手動でアンインストールできます。

Oracleでテーブルを作成する方法 Oracleでテーブルを作成する方法 Apr 11, 2025 pm 08:00 PM

Oracleテーブルの作成には、次の手順が含まれます。作成テーブルの構文を使用して、テーブル名、列名、データ型、制約、およびデフォルト値を指定します。テーブル名は簡潔で説明的である必要があり、30文字を超えてはなりません。列名は説明的でなければならず、データ型は列に保存されているデータ型を指定します。 NOT NULL制約により、列でnull値が許可されていないことが保証され、デフォルト句は列のデフォルト値を指定します。テーブルの一意の記録を識別する主要なキーの制約。外部キーの制約は、表の列が別のテーブルの主キーを指していることを指定します。主要なキー、一意の制約、デフォルト値を含むサンプルテーブル学生の作成を参照してください。

Oracleのインスタンス名を表示する方法 Oracleのインスタンス名を表示する方法 Apr 11, 2025 pm 08:18 PM

Oracleでインスタンス名を表示するには3つの方法があります。「sqlplus」と「v $ instanceからselect instance_name;」を使用します。」コマンドラインのコマンド。 「show instance_name;」を使用しますSQL*Plusのコマンド。オペレーティングシステムのタスクマネージャー、Oracle Enterprise Manager、またはオペレーティングシステムを介して、環境変数(LinuxのOracle_Sid)を確認してください。

Oracleビューを暗号化する方法 Oracleビューを暗号化する方法 Apr 11, 2025 pm 08:30 PM

Oracle View暗号化により、ビュー内のデータを暗号化でき、それにより機密情報のセキュリティが強化されます。手順には以下が含まれます。1)マスター暗号化キー(MEK)の作成。 2)暗号化されたビューを作成し、暗号化されるビューとMEKを指定します。 3)暗号化されたビューにアクセスすることをユーザーに許可します。暗号化されたビューがどのように機能するか:ユーザーが暗号化されたビューを求めてクエリをするとき、OracleはMEKを使用してデータを復号化し、認定ユーザーのみが読み取り可能なデータにアクセスできるようにします。

Oracleを再び追求する方法 Oracleを再び追求する方法 Apr 11, 2025 pm 07:33 PM

Oracleは複数の重複排除クエリメソッドを提供します。個別のキーワードは、各列の一意の値を返します。 Group by Clauseは、結果をグループ化し、各グループの非繰り返し値を返します。一意のキーワードは、一意の行のみを含むインデックスを作成するために使用され、インデックスをクエリすると自動的に重複排除が行われます。 row_number()関数は、一意の数値を割り当て、行1のみを含む結果をフィルタリングします。min()またはmax()関数は、数値列の非繰り返し値を返します。交差する演算子は、2つの結果セットの共通値を返します(複製なし)。

Oracle AWRレポートを読む方法 Oracle AWRレポートを読む方法 Apr 11, 2025 pm 09:45 PM

AWRレポートは、データベースのパフォーマンスとアクティビティスナップショットを表示するレポートです。解釈の手順には、アクティビティスナップショットの日付と時刻の識別が含まれます。アクティビティとリソース消費の概要をご覧ください。セッションのアクティビティを分析して、セッションの種類、リソース消費、待機イベントを見つけます。遅いSQLステートメント、リソース競合、I/Oの問題などの潜在的なパフォーマンスボトルネックを見つけます。待機イベントを表示し、パフォーマンスのためにそれらを特定して解決します。ラッチとメモリの使用パターンを分析して、パフォーマンスの問題を引き起こしているメモリの問題を特定します。

See all articles