ホームページ >データベース >mysql チュートリアル >SQL SELECT ステートメントで条件付きロジックを実行するにはどうすればよいですか?
SQL SELECT ステートメント内の条件ロジック: 総合ガイド
SQL では、データを変更またはフィルタリングするために、SELECT
ステートメント内に条件付きロジックが必要になることがよくあります。 CASE
ステートメントは、多数の SQL 言語でサポートされる多用途のソリューションを提供します。
IF...THEN
クエリで SELECT
構造を模倣するには、以下に示すように CASE
ステートメントを使用します。
<code class="language-sql">SELECT CAST( CASE WHEN condition1 OR condition2 THEN value_if_true ELSE value_if_false END AS data_type) AS new_column, * FROM table_name;</code>
構文の内訳は次のとおりです。
condition1
および condition2
: 評価する条件。value_if_true
および value_if_false
: 条件が true か false に応じて返される値。data_type
: new_column
結果のデータ型。table_name
: データが選択されるテーブル。たとえば、Saleable
テーブルに Product
列を追加して、Obsolete
と InStock
のステータスに基づいて製品の在庫状況を示すには、次のようにします。
<code class="language-sql">SELECT CAST( CASE WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1 ELSE 0 END AS bit) AS Saleable, * FROM Product;</code>
CAST
を省略した簡略化したバージョンでは、整数の結果が得られます。
<code class="language-sql">SELECT CASE WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1 ELSE 0 END AS Saleable, * FROM Product;</code>
CASE
ステートメントはネストしたり、集約関数に統合したりできます。 さらに、SQL Server 2012 では IIF
ステートメントが導入され、代替の簡潔な構文
<code class="language-sql">SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable, * FROM Product;</code>
これにより、SELECT
ステートメント内の条件付きロジックが簡素化され、データ操作の柔軟性と効率が向上します。
以上がSQL SELECT ステートメントで条件付きロジックを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。