0

3 つの列 (0 から 10 までの値のみを想定する整数値を含む) を持つテーブルがあります。1 つのクエリで、1 列のテーブルを抽出したい。この列は、次のロジックに基づく値を想定する必要があります。

  1. これらの 3 つの列のいずれかの値が 0 の場合 ----> クエリによって生成されたテーブルの列の値も 0 でなければなりません。

  2. 最後の 3 つの列のいずれにも値 0 がない場合 ----> column の値は値 1 を想定する必要があります。

4

3 に答える 3

2

CASEコンストラクトまたはIF関数を探しています:

SELECT CASE WHEN (t.field1 = 0 OR t.field2 = 0 OR t.field3 = 0) THEN 0
       ELSE 1 END AS value
FROM t;

この特定のケースでは、メンバーがゼロであると積がゼロになるという事実を使用することもできます。

SELECT CASE WHEN (t.field1*t.field2*t.field3 = 0) THEN 0 ELSE 1 END AS value
FROM t;

または

SELECT IF((t.field1*t.field2*t.field3)=0, 0, 1) AS value FROM t;
于 2012-09-06T17:52:59.683 に答える
1

これは単純なケース ステートメントです。NULL 値がないと仮定して、これを試してください:

select (case when col1 = 0 or col2 = 0 or col3 = 0 then 0 else 1 end)
于 2012-09-06T17:52:29.933 に答える
1

これを試して

SELECT  
    CASE
    WHEN column1 = 0 THEN 0
    WHEN column2 = 0 THEN 0
    WHEN column3 = 0 THEN 0
    ELSE 1
    END
FROM urtable
于 2012-09-06T17:54:38.827 に答える