SQL SELECT で IF...THEN を実行するにはどうすればいいですか? 質問する

SQL SELECT で IF...THEN を実行するにはどうすればいいですか? 質問する

IF...THENステートメントで を実行するにはどうすればよいですかSQL SELECT?

例えば:

SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product

ベストアンサー1

このCASEステートメントは SQL の IF に最も近いものであり、SQL Server のすべてのバージョンでサポートされています。

SELECT CAST(
             CASE
                  WHEN Obsolete = 'N' or InStock = 'Y'
                     THEN 1
                  ELSE 0
             END AS bit) as Saleable, *
FROM Product

CAST結果をブール値として取得したい場合にのみ、演算子を使用する必要があります。 で十分な場合はint、次のようにします。

SELECT CASE
            WHEN Obsolete = 'N' or InStock = 'Y'
               THEN 1
               ELSE 0
       END as Saleable, *
FROM Product

CASEステートメントは他のステートメントに埋め込むことができCASE、集計に含めることもできます。

SQL Server Denali (SQL Server 2012) では、IIF声明文は、アクセス(指摘:マーティン・スミス):

SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product

おすすめ記事