SQL SELECT ステートメント内の条件ロジック
SQL の SELECT
ステートメントは、IF...THEN
構造を直接サポートしません。 ただし、条件付きロジックを実装するには、CASE
ステートメントと IIF
関数 (特定の SQL 言語で使用可能) という 2 つの効果的な代替手段が存在します。
CASE ステートメントの利用
CASE
ステートメントは、他のプログラミング言語の IF...THEN
の機能を反映しています。条件を順番に評価し、最初に満たされた条件に基づいて値を返します。
構文:
<code class="language-sql">SELECT CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END AS new_column_name, other_columns FROM your_table;</code>
例:
<code class="language-sql">SELECT CASE WHEN IsActive = 'Yes' THEN 'Active' WHEN IsActive = 'No' THEN 'Inactive' ELSE 'Unknown' END AS Status, * FROM Users;</code>
このクエリは、「ステータス」列を追加し、IsActive
列の値に基づいて「アクティブ」、「非アクティブ」、または「不明」を割り当てます。
IIF 関数の使用 (SQL Server)
IIF
関数 (SQL Server 2012 で導入) は、SELECT
ステートメント内の条件付きロジックを処理する簡潔な方法を提供します。
構文:
<code class="language-sql">IIF(condition, true_result, false_result)</code>
例:
<code class="language-sql">SELECT IIF(OrderTotal > 100, 'High Value', 'Low Value') AS OrderCategory, * FROM Orders;</code>
この例では、「OrderCategory」列を作成し、OrderTotal
に応じて注文を「高価値」または「低価値」に分類します。 IIF
は SQL Server に固有のものであり、他のデータベース システムでは使用できない場合があることに注意してください。 より広範な互換性を確保するには、一般に CASE
ステートメントが推奨されます。
以上がSQL SELECT ステートメントに条件付きロジックを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。