1. ホーム
  2. sql

[解決済み] SQL Server 2008 を使用して複数の CASE WHEN 条件を行うにはどうすればよいですか?

2022-03-05 01:33:31

質問

同じ列に対して複数のCASE WHEN条件を使用したいのですが、どうすればよいですか?

以下は、私のクエリのコードです。

   SELECT   Url='',
            p.ArtNo,
            p.[Description],
            p.Specification,
            CASE 
            WHEN 1 = 1 or 1 = 1 
               THEN 1 
               ELSE 0 
            END as Qty,
            p.NetPrice,
            [Status] = 0
      FROM  Product p (NOLOCK)

しかし、私がやりたいことは、同じカラム "qty"に対して複数のWHENを使用することです。

以下のコードのように。

IF
// CODE
ELSE IF
// CODE
ELSE IF
// CODE
ELSE
// CODE

解決方法は?

があります。 大文字小文字を区別するための2つの形式 . あなたは CASE をたくさん使って WHEN としています。

CASE  WHEN Col1 = 1 OR Col3 = 1  THEN 1 
      WHEN Col1 = 2 THEN 2
      ...
      ELSE 0 END as Qty

または a シンプル CASE 表現

CASE Col1 WHEN 1 THEN 11 WHEN 2 THEN 21 ELSE 13 END

または CASE CASE としています。

CASE  WHEN Col1 < 2 THEN  
                    CASE Col2 WHEN 'X' THEN 10 ELSE 11 END
      WHEN Col1 = 2 THEN 2
      ...
      ELSE 0 END as Qty