SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQLServerのCASEステートメント

この記事では、SQL ServerでCASEステートメント処理関数を使用する方法と、関数をより適切に視覚化およびキャプチャするための特定の構文と例を詳しく説明します。

説明

CASEステートメント IF-THEN-ELSEステートメントの関数と同様に、SQLServerで分岐条件を設定するために使用されます。

CASEには2つの形式があります:

  1. SimpleCASE関数。SimpleCASEとも呼ばれます。
  2. 検索機能CASEは、検索されたCASEとも呼ばれます。

内部:

  1. 単純なCASEは、式を一連の単純な式と比較して結果を決定することです。
  2. 検索されたCASEは、一連のブール式を評価して結果を決定することです。
  3. どちらの形式もELSE引数をサポートしています(必須ではありません)。

構文

SQL ServerでCASEステートメントを使用するには、次の構文を使用します。

シンプルなケース

 CASE bieuthuc_dauvao 
WHEN bieuthuc_1 THEN ketqua_1
WHEN bieuthuc_2 THEN ketqua_2
.
WHEN bieuthuc_n THEN ketqua_n
ELSE ketqua_khac
END

または検索されたケース

 CASE 
WHEN dieukien_1 THEN ketqua_1
WHEN dieukien_2 THEN ketqua_2
.
WHEN dieukien_n THEN ketqua_n
ELSE ketqua_khac
END

パラメータ

  1. bieuthuc_dauvao: 式は、提供された各値と比較されます。
  2. bieuthuc_1、bieuthuc_2、bieuthuc_n: 式は、入力式と順番に比較するために使用されます。式がbieuthu_dauvaoと一致すると、CASEは次のステートメントを実行し、それ以上の比較は行いません。
  3. dieukien_1、dieukien_2、dieukien_n :条件を確認し、記載されている順序で承認します。条件が真であると判断されると、CASEは結果を返し、それ以上の条件は評価されません。すべての条件は同じデータ型である必要があります。
  4. ketqua_1、ketqua_2、ketqua_n :条件が真であると見なした後に返される結果。すべての値は同じデータ型である必要があります。

  1. 一致がない場合 TRUEの場合、CASEステートメントはELSE句の結果を返します。
  2. ELSE句がなく、TRUE条件がない場合、CASEステートメントはNULLを返します。
  3. 条件は、リストされている順序で評価されます。条件が真であると判断されると、CASEステートメントは結果を返し、それ以上の条件は評価されません。
  4. CASEは、SQL Serverの新しいバージョン(SQL Server 2017、SQL Server 2016、SQL Server 2014、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、およびSQL Server 2005)で使用できます。

SQLServerのCASEステートメントの例をいくつか見てみましょう。

例1:単純なケース

変換テーブルのコード列に基づいて、TipsMake.comWebサイトのセクションを確認する必要があるとします。

  1. Code='01'が'Laptrinh-TipsMake.com'の場合。
  2. Code='02'が'Congnghe-TipsMake.com'の場合。
  3. Code='03'が'Cuocsong-TipsMake.com'の場合。
  4. それどころか、それは1から3ではなく、「Khoahoc-TipsMake.com」のセクションにあります。
 SELECT tenchuyenmuc, Code 
(CASE code
WHEN 01 THEN 'Laptrinh-TipsMake.com'
WHEN 02 THEN 'Congnghe-TipsMake.com'
WHEN 03 THEN 'Cuocsong-TipsMake.com'
ELSE 'Khoahoc-TipsMake.com'
END) AS Chuyenmuc
FROM chuyenmuc
ORDER BY Code

返された結果:

tenchuyenmuc コード Chuyenmuc SQL Server 01 Laptrinh-TipsMake.com Linux 02 Congnghe-TipsMake.com Python 01 Laptrinh-TipsMake.com JavaScript 01 Laptrinh-TipsMake.com Android 02 Congnghe-TipsMake.com Giai tri 03 Cuocsong-TipsMake.com Cuocsong-TipsMake.com Science Curve 04 Khoahoc-TipsMake.com Kham pha Science 05 Khoahoc-TipsMake.com

例2:検索されたケース

 SELECT tenchuyenmuc, 
CASE
WHEN code = 01 THEN 'Laptrinh-TipsMake.com'
WHEN code = 02 THEN 'Congnghe-TipsMake.com'
WHEN code = 03 THEN 'Cuocsong-TipsMake.com'
ELSE 'Khoahoc-TipsMake.com'
END
FROM chuyenmuc;

次のようなELSE条件を使用することもできません:

 SELECT tenchuyenmuc, Code 
(CASE code
WHEN 01 THEN 'Laptrinh-TipsMake.com'
WHEN 02 THEN 'Congnghe-TipsMake.com'
WHEN 03 THEN 'Cuocsong-TipsMake.com'
END) AS Chuyenmuc
FROM chuyenmuc
ORDER BY Code

または:

 SELECT tenchuyenmuc, 
CASE
WHEN code = 01 THEN 'Laptrinh-TipsMake.com'
WHEN code = 02 THEN 'Congnghe-TipsMake.com'
WHEN code = 03 THEN 'Cuocsong-TipsMake.com'
END
FROM chuyenmuc;

ELSE句を省略すると、条件が真でない場合、CASEステートメントはNULLを返します。

例3:2つの条件の比較

これは、CASEステートメントを使用してさまざまな条件を比較する方法を示す例です。

 SELECT 
CASE
WHEN code < 2 THEN 'Laptrinh-TipsMake.com'
WHEN code = 2 THEN 'Congnghe-TipsMake.com'
END
FROM chuyenmuc;

条件がリストされている順序で順番に比較されることを忘れないでください。条件が真であると判断されると、CASEステートメントはすぐに結果を返し、他の条件は評価されません。したがって、条件をリストする順序を選択するときは注意する必要があります。

SQLServerのCASE関数のより具体的な例を参照してください


  1. IFコマンド...SQLServerのELSE

    他のプログラミング言語と同様に、SQL ServerもユーザーにIFコマンドELを提供します。この記事では、構文の使用方法と明確な例を詳しく説明し、IFを想像しやすくします。 。その他。 説明 SQL Serverでは、IFステートメント。 ELSEは、条件付き命令を実行するために使用されます。正しいコマンドがコマンドを実行した場合、失敗した場合は別のコマンドを実行します。 IFの使用構文。 ELSE IFブランチステートメントを使用します。 SQL ServerのELSEでは、次の構文を使用します。 IF dieukien {. statement executed when c

  2. SQLServerのINSERTステートメント

    SQL ServerのINSERTステートメント(Transact-SQL)は、1つ以上のレコードをテーブルに挿入するために使用されます。 INSERTコマンド構文 レコードを挿入 最も単純な形式では、INSERTコマンド構文はVALUESキーワードを含むレコードを挿入します INSERT INTO bang (cot1, cot2, …) VALUES (bieuthuc1, bieuthuc2, …), (bieuthuc1, bieuthuc2, …), . ; INSERTコマンドの完全な構文は、VALUESキーワードを使用してレコードを挿入します INSER