条件付き実行とは、特定の条件が満たされた場合にのみコードのブロックを実行する機能を指します。これは開発において広く普及している操作です。たとえば、SQL で条件付き実行を実現する最も一般的な方法は、CASE ステートメントを使用することです。
CASE ステートメントを使用すると、テーブル内の 1 つ以上の列の値をチェックし、そのチェック結果に基づいて特定のコード ブロックを実行することにより、条件付きロジックを実行できます。
このチュートリアルでは、指定された値が NULL の場合に CASE ステートメントを使用する方法を説明します。
SQL Case ステートメント
SQL の CASE ステートメントの構文を次に示します。
CASE式
WHEN 値_1 THEN 結果_1
WHEN 値_2 THEN 結果_2
...
ELSE デフォルト結果
終わり
次の例を考えてみましょう。
テーブルの生徒を作成する (
ID int auto_increment が null でない主キー、
名前 varchar ( 50 ) 、
science_score int null ではない、
math_score int が null ではない、
History_score int が null ではない、
他の int は null ではありません
) ;
生徒に挿入 ( 名前、科学スコア、数学スコア、歴史スコア、その他 )
価値観
( 'ジョン・ドウ' 、 80 、 70 、 90 、 85 ) 、
( 「ジェーン・スミス」 、 95 、 85 、 80 、 92 ) 、
( 「トム・ウィルソン」 、 70 、 75 、 85 、 80 ) 、
( 「サラ・リー」 、 88 、 92 、 90 、 85 ) 、
( 「マイク・ジョンソン」 、 75 、 80 、 72 、 68 ) 、
( 「エミリー・チェン」 、 92 、 88 、 90 、 95 ) 、
( 'クリス・ブラウン' 、 85 、 80 、 90 、 88 ) 、
( 「リサ・キム」 、 90 、 85 、 87 、 92 ) 、
( 「マーク・デイビス」 、 72 、 68 、 75 、 80 ) 、
( 「エヴァ・リー」 、 90 、 95 、 92 、 88 ) ;
たとえば、次の例に示すように、CASE ステートメントを使用してさまざまなオプションを評価し、特定のアクションを返すことができます。
名前、
科学スコア、
数学スコア、
履歴スコア、
他の、
場合
いつ ( 科学スコア + 数学スコア + 歴史スコア + その他 ) / 4 > = 90 それから 「あ」
いつ ( 科学スコア + 数学スコア + 歴史スコア + その他 ) / 4 > = 80 それから 「B」
いつ ( 科学スコア + 数学スコア + 歴史スコア + その他 ) / 4 > = 70 それから 「C」
いつ ( 科学スコア + 数学スコア + 歴史スコア + その他 ) / 4 > = 60 それから 「D」
それ以外 「ふ」
として終了 '学年'
学生から;
結果の出力:
値が Null の場合の SQL Case ステートメント
NULL 値を扱う場合は、CASE ステートメントを使用してコード ブロックを実行できます。さらに、IS NULL 演算子と IS NOT Null 演算子を使用して NULL 値を評価し、戻り値に基づいて特定のアクションを実行できます。
次の構文の例を考えてみましょう。
選択する場合
column_name が NULL の場合 「値がnullです」
それ以外 「値はnullではありません」
結果として終了
FROM テーブル名;
この場合、指定された column_name の値が null かどうかを確認します。 true の場合、「値は null です」を返します。弦。それ以外の場合、値が null でない場合は、「値は null ではありません」を返します。弦。
また、AS キーワードを結果文字列のエイリアスとして使用します。
次のテーブルの例を考えてみましょう。
生徒に挿入 ( 名前、science_score、math_score、history_score、その他、temp )価値観
( 'ジョン・ドウ' 、 80 、 70 、 90 、 85 、 ヌル ) 、
( 「ジェーン・スミス」 、 95 、 85 、 80 、 92 、 ヌル ) 、
( 「トム・ウィルソン」 、 70 、 75 、 85 、 80 、 「て」 ) 、
( 「サラ・リー」 、 88 、 92 、 90 、 85 、 「さん」 ) 、
( 「マイク・ジョンソン」 、 75 、 80 、 72 、 68 、 ヌル ) 、
( 「エミリー・チェン」 、 92 、 88 、 90 、 95 、 ヌル ) 、
( 'クリス・ブラウン' 、 85 、 80 、 90 、 88 、 'ヌル' ) 、
( 「リサ・キム」 、 90 、 85 、 87 、 92 、 」 ) 、
( 「マーク・デイビス」 、 72 、 68 、 75 、 80 、 ヌル ) 、
( 「エヴァ・リー」 、 90 、 95 、 92 、 88 、 「あ」 ) ;
その後、CASE ステートメントを使用して、NULL 値に対する特定のメッセージを出力できます。
場合
温度が NULL の場合 「値がnullです」
それ以外 「値はnullではありません」
結果として終了
学生から;
出力:
結論
SQL CASE ステートメントを使用して特定の条件を評価し、結果の値に基づいて必要なタスクを実行する方法を学びました。