SQL での Case の使用法

angryTom
リリース: 2022-03-29 16:19:14
オリジナル
182527 人が閲覧しました

SQLでは「Case When文」を用いて選択・判定を行います。実行時にはまず条件を判定し、判定結果に基づいて対応する処理を行います。構文「CASEフィールドWHEN条件1」 THEN 操作 1 WHEN 条件 2 THEN 操作 2...ELSE 操作 n END;"。

SQL での Case の使用法

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

SQL での case when の使用法

case when は、プログラミング言語の if else 判定および switch case ステートメントに似ています。このステートメントを実行すると、まず条件が判定され、判定結果に基づいて対応する演算が行われます。

Case には、単純な Case 関数と Case 検索関数の 2 つの形式があります。

単純な Case 関数:

CASE sex
WHEN ‘1’ THEN ‘男’
WHEN ‘0’ THEN ‘女’
ELSE ‘其他’ END
ログイン後にコピー

ケース検索関数:

CASE WHEN sex = ‘1’ THEN ‘男’
WHEN sex = ‘0’ THEN ‘女’
ELSE ‘其他’ END
ログイン後にコピー

明らかに、単純な Case 関数はより簡潔ですが、このような単一フィールドにのみ適しています。単一値の比較。ケース検索機能の利点は、すべての比較状況に適用できることです。

もう一つ注意が必要なのですが、Case関数は一定の条件を満たした後、残りの条件は自動的に無視されるため、複数の条件が合致しても実行時に認識されるのは最初の条件だけです。一つの条件。

(PHP 中国語 Web サイトには、無料の SQL チュートリアル がたくさんあります。誰でも学習することを歓迎します!)

CASE WHEN を使用する場合、それを論理的 匿名フィールドの場合、条件に基づいてフィールド値が確認されます。フィールド名を使用する必要がある場合は、as を使用してエイリアスを定義できます。これはまだ非常に抽象的ですが、以下の CASE WHEN の使用例を見て明確にしてください。

使用シナリオ

1. 既知のデータは、特定の方法でグループ化して分析できます。

SQL での Case の使用法

この国の人口データに基づいて、アジアと北米の人口を数えます。次の SQL を使用します。

SELECT  CASE country
WHEN '中国'     THEN '亚洲'
WHEN '印度'     THEN '亚洲'
WHEN '日本'     THEN '亚洲'
WHEN '美国'     THEN '北美洲'
WHEN '加拿大'  THEN '北美洲'
WHEN '墨西哥'  THEN '北美洲'
ELSE '其他' END as '洲' , SUM(population) as '人口'
FROM test
GROUP BY CASE country
WHEN '中国'     THEN '亚洲'
WHEN '印度'     THEN '亚洲'
WHEN '日本'     THEN '亚洲'
WHEN '美国'     THEN '北美洲'
WHEN '加拿大'  THEN '北美洲'
WHEN '墨西哥'  THEN '北美洲'
ELSE '其他' END;
ログイン後にコピー

SQL での Case の使用法

ここでの 2 つの CASE WHEN は 1 つのフィールドに相当しますが、2 番目の CASE WHEN の THEN 値に注意してください。どの大陸であるかを指定する必要はありません。レコードをグループ化するためにのみ使用されるため、THEN の後の値はこれら 3 種類のレコードのみを区別できます。GROUP BY は次のように記述することもできます:

GROUP BY CASE country
WHEN '中国'     THEN 0
WHEN '印度'     THEN 0
WHEN '日本'     THEN 0
WHEN '美国'     THEN 1
WHEN '加拿大'  THEN 1
WHEN '墨西哥'  THEN 1
ELSE 2 END;
ログイン後にコピー

2。 SQL ステートメント さまざまな条件でグループ化を完了します。

次のデータがあります:

SQL での Case の使用法

Case 関数を使用して、国と性別によるグループ化を完了します。次の SQL を使用します:

SELECT country,
SUM( CASE WHEN sex = '1' THEN population ELSE 0 END  ),  --男性人口
SUM( CASE WHEN sex = '2' THEN population ELSE 0 END )   --女性人口
FROM  Table_A
GROUP BY country;
ログイン後にコピー

次の結果を取得します:

SQL での Case の使用法

最初の CASE WHEN を説明します:

CASE WHEN sex = '1' THEN
population ELSE 0 END
ログイン後にコピー

レコードの性別が 1 の場合、このフィールドの値はレコードの人口値になります。それ以外の場合は 0 になるため、国の男性の人口を計算できます。

SQL やその他の プログラミング入門 チュートリアルについては、引き続き PHP 中国語 Web サイトに注目してください。 !

以上がSQL での Case の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!