2017-09-30 9 views
1

私は条件をチェックする必要があるSQL Viewの要件を持っています。本当に必要な場合は、2つの列の値と両方の列を更新する必要がありますカスタムヘッダー名が必要です。異なるヘッダ名を持つSQL CASE文のTHEN部分でANDを使用する方法

ここではCASEが動作すると仮定しましたが、これを実装する方法がわかりません。ここで

例えば、

CASE WHEN A2016.OpExp IS NULL THEN A2015.OpExp ELSE A2016.OpExp END AS 'OPEX' 

、A.2016がnullの場合、THEN部分で、私は '年' AS A2015.OpExp AS 'OPEX' AND A.Year = 2015を求めています。

私がこの状況でCASEを使用することを決定した場合は、アドバイスをお願いします。 [終了場合の二つの可能な構文があり

+0

テーブルスキーマと試したクエリを追加する方法はありますか? –

+1

「カスタムヘッダー名」とはどういう意味ですか? – 1010

+0

あなたが何を求めているのかは不明です。サンプルテーブルのデータと期待される結果を表示してください。 –

答えて

0

CASE variable 
    WHEN value1 then result1 
    WHEN value2 then result2... 
END 

CASE 
    WHEN condition THEN value1 
    WHEN othercondition then value2... 
END 

第一方が受け入れ "AND" は、例えば、条件の一部として

CASE 
    WHEN X = 0 AND Y = 0 THEN 'On the origin' 
    WHEN X = 0 AND Y <> 0 THEN 'On the X axis' 
    WHEN X <> 0 AND Y = 0 THEN 'On the Y axis' 
    ELSE 'Somewhere over the rainbow' 
END 

あなたが意図したことを行える構文はありません。

必要なものを達成するにはいくつかの方法があります。一つの方法は、このように、2つのフィールド式、OPEX用とYEARのための1つを使用している:「カスタムヘッダー」を仮定し

CASE WHEN A2016.OpExp Is Null then A2015.OpExp ELSE A2016.OpExp END as OPEX, 
CASE WHEN A2016.OpExp Is Null then 2015 ELSE 2016 END as YEAR... 
0

は、列の別名(AS句)を意味し、ビューで動的にそれを変更することはできません。ビューの作成時に、ビューの列名とデータ型のメタデータが決定されます。 CASE式で行ったように、返される値は条件によって異なる場合があります。

関連する問題