ホームページ >データベース >mysql チュートリアル >CASE と IIF を使用して SQL SELECT ステートメントに条件付きロジックを実装するにはどうすればよいですか?

CASE と IIF を使用して SQL SELECT ステートメントに条件付きロジックを実装するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-22 15:06:14366ブラウズ

How Can I Implement Conditional Logic in SQL SELECT Statements using CASE and IIF?

SQL SELECT ステートメントの条件付きロジックをマスターする: CASE と IIF

SQL SELECT ステートメント内の条件付きロジックを効率的に管理することは、データの操作とフィルタリングにとって重要です。 直接の IF...THEN 構造は標準 SQL では使用できませんが、CASE ステートメントと IIF (SQL Server Denali 以降) は強力な代替手段を提供します。

CASE ステートメント: SQL 条件付きの主力

CASE ステートメントは IF...THEN の機能を反映しており、条件を順番に評価し、最初に真の条件に基づいて値を返します。 その構造は次のとおりです:

<code class="language-sql">SELECT
  CASE
    WHEN condition1 THEN value1
    WHEN condition2 THEN value2
    ...
    ELSE default_value
  END AS <alias>,  -- Assign an alias to the result
  *
FROM <table_name></code>

次の実際的な応用例を考えてみましょう:

<code class="language-sql">SELECT CAST(
  CASE
    WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1
    ELSE 0
  END AS bit) AS Saleable,  -- Casts the result as a BIT (Boolean)
  *
FROM Product</code>

CAST 演算子に注意してください。 これがなければ、結果は整数 (0 または 1) になります。 CAST を使用すると、ブール値 (TRUE または FALSE) に変換されます。

IIF: 簡潔な条件付きオプション (SQL Server)

SQL Server は IIF (Immediate If) ステートメントを導入し、CASE:

のよりコンパクトな代替手段を提供しました。
<code class="language-sql">SELECT IIF(condition, true_value, false_value) AS <alias>,
  *
FROM <table_name></code>

これがこの例にどのように適用されるかは次のとおりです。

<code class="language-sql">SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable,
  *
FROM Product</code>

CASEIIF は両方とも、SQL SELECT クエリに条件付きロジックを実装し、動的なデータ操作と効率的なフィルタリングを可能にするために不可欠なツールです。

以上がCASE と IIF を使用して SQL SELECT ステートメントに条件付きロジックを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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