GaussDB SQL基本構文例-CASE式

目次

I.はじめに

2. CASE 式の概要

3. GaussDB データベースの単純な CASE 式

1. 基本的な考え方

2. 基本的な文法

3. 例

4. GaussDBデータベース内のCASE式を検索

1. 基本的な考え方

2. 基本的な文法

3. 例

5. まとめ

I.はじめに

SQL は、データベースにアクセスして操作するために使用される標準的なコンピューター言語です。 GaussDB は SQL 標準をサポートしています (SQL2、SQL3、SQL4 の主要機能はデフォルトでサポートされています)。

この連載では、オンラインドキュメント「Cloud Database GaussDB—SQL Reference」をもとに紹介していきます。

2.CASE 式 (CASE 式) の概要

GaussDB SQL では、CASE 式 (CASE Expression) は、SQL で条件ベースの操作を実行するために使用できる非常に強力で一般的に使用されるツールです。 CASE 式は IF-THEN-ELSE ステートメントに似ていますが、より柔軟に使用でき、読み書きも簡単です。

CASE 式には 2 つの形式が含まれており、1 つは単純形式、もう 1 つは検索形式です。これら 2 つの形式の書き方、文法、使用法を以下に紹介します。

3.GaussDB データベースの単純な CASE 式

1、基本概念

単純な CASE 式は、指定された式に対して等価ベースの比較を実行し、式が特定の値と等しい場合に演算を実行します。つまり、input_expression と when_expression の一致結果に基づいて、対応する result_expression にジャンプします。

2、基本语法

CASE 入力式

WHEN when_expression THEN result_expression

[...n]

[ELSE else_result_expression]

終わり

説明: このうち、input_expression は比較する必要がある式を表し、when_expression などは比較する必要がある値を表し、result_expression などは比較するときの結果を表します。各値は等しい。else_result_expression は、input_expression がいずれかの値のデフォルトの結果と等しくない場合を表します

ヒント:CASE: 単純な CASE 関数はサブクエリをサポートしていますが、input_expression と when_expression は一致する可能性があることに注意してください。さらに、TRUE と評価される input_expression = when_expression がない場合、DLI は、ELSE 句が指定されている場合は else_result_expression を返し、ELSE 句が指定されていない場合は NULL 値を返します。

3、示例

従業員レベルが固定給与に基づいて定義されていると仮定すると、次の SQL に従って実行できます。

名前の選択

      、給料

      ,CASE給与

                 15000 のときは「小学生」

                       20000 のときは「中級」

                            25000 の場合は「プレミアム」になります。

                            30000 のときは「プレミアム」

                            35000 の場合は「プレミアム」になります。

                            それ以外の場合は NULL

                   END ASレベル

会社から

給料で注文;

SQL语句解析:

テストでは、GaussDB データベースに作成された会社テーブルを使用します。

このSQLは、「会社」テーブルから従業員の名前(name)、給与(salary)、給与レベル(level)に分類されたフィールドを選択します。そして、「ORDER BY給与」ステートメントを使用して、結果を給与の低い順に並べ替えます。

単純な CASE 式の仕組み:

「給与」フィールドの値が 15000 に等しい場合、「レベル」フィールドの値は「ジュニア」になります。

「給与」フィールドの値が 20000 に等しい場合、「レベル」フィールドの値は「中級」になります。

「salary」フィールドの値が 25000、30000、または 35000 に等しい場合、「level」フィールドの値は「advanced」になります。

「salary」フィールドの値が上記のいずれの値とも等しくない場合、「level」フィールドの値は NULL になります。

4.GaussDB データベースで CASE 式を検索する

1、基本概念

CASE 式の検索とは、指定された式に対して不等式に基づく比較を実行し、式が指定された条件を満たす場合に対応する演算を実行することを意味します。つまり、各 WHEN 句の boolean_expression は指定された順序で評価されます。 TRUE と評価される最初の boolean_expression の result_expression を返します。

2、基本语法

CASE WHEN ブール式 THEN 結果式

[...n]

[ELSE else_result_expression]

終わり

説明: このうち、boolean_expression などは比較する必要がある条件を表し、result_expression などは対応する条件が満たされた場合の演算結果を表し、else_result_expression は比較する必要がある条件を表します。式がどの条件も満たさない場合のデフォルトの結果。

ヒント:boolean_expression: サブクエリを含めることができますが、boolean_expression 式全体の戻り値はブール型のみにすることができます。

TRUE と評価される Boolean_expression がない場合、ELSE 句が指定されている場合は DLI は else_result_expression を返し、ELSE 句が指定されていない場合は NULL 値を返します。

3、示例

従業員レベルが給与範囲に基づいて定義されていると仮定すると、次の SQL に従って実行できます。

名前の選択

      、給料

      ,給与 < の場合15000 THEN '初级'

                       給与が 15000 から 25000 の間の場合、「中级」となります。

                            給与が 25000 を超える場合、「シニア」となります。

                            それ以外の場合は NULL

                   END ASレベル

会社から

給料で注文;

SQL语句解析:

このSQLは上記と同じで、「company」テーブルから従業員の氏名(name)、給与(salary)、給与水準(level)に応じた区分を選択します。

検索 CASE 式の仕組み:

給与(給与)が15,000未満の場合、給与等級は「ジュニア」と表示されます。

給与が 15,000 ~ 25,000 (両端を含む) の場合、給与等級は「中級」としてマークされます。

給与が 25,000 を超える場合、給与等級は「シニア」としてマークされます。

上記の条件がいずれも満たされない場合、給与等級は NULL としてマークされます。

综上,这个SQL语句的主要目的是获取员工信息,根据其薪水水平对其进行分类,并按照薪水的水平进行排序。

五、小结

GaussDB 中的CASE表达式是一个非常有用的工具,可以用于在SQL中执行基于条件的操作,实现条件判断和分支逻辑,进一步优化数据库查询和操作。在编写SQL代码时,可以根据具体的业务需求灵活选择简单形式或搜索形式来进行编写,这样可以大大提高编码效率和代码可读性。

附:常见使用场景,如:二次定义标签、饱和度统计、计算指标、数据格式转换等。

——结束

おすすめ

転載: blog.csdn.net/GaussDB/article/details/133981968