1. ホーム
  2. sql

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

2022-04-14 23:41:23

質問

同じ列に対して複数の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