論理関数
以下のリストに、式に使用できる論理関数を示します。
関数 | 説明 |
---|---|
Case | Case ステートメントには 2 種類の形態があります。 シンプル: case Arg1 when Arg2 then Arg3 else Arg4 end Arg1 の式が評価されて、Arg1 が Arg2 と等しい場合は Arg3 が返されます。複数の when/then 式を入力することができ、これらの式は左から右の順に評価されます。 検索済み: case when Arg1 then Arg2 else Arg3 end Arg1=true の場合は Arg2 を返し、Arg1=false の場合は Arg3 を返します。複数 複数の when/then 式を入力することができ、これらの式は左から右の順に評価されます。 詳細については、以下を参照してください。 例: case when 1 < 2 then "a" when 1 < 3 then "b" else "c" end case [Column] when 3 then "a" when 2 then "b" else "c" end 例については、以下および「 条件に基づく計算カラム」を参照してください。 |
If(Arg1,Arg2,Arg3) | Arg1=true の場合は Arg2 を返し、Arg1=false の場合は Arg3 を返します。Arg1 はブール型で、通常は比較の結果です。Arg3と Arg2 には任意の型を指定できますが、両方とも同じ型、または NULL である必要があります。 2 番目と 3 番目の引数はローのサブセットのみを処理し、すべてのカラムベースおよび集計メソッドに影響を与えます。詳細については、以下を参照してください。 例: If([Count] > 3, "many", "few") If(true, null, null) -> (Empty) If(true, 1, null) -> 1 If(false, null, 2) -> 2 If(null, 1, 2) -> (Empty) If(1 < 2, "Small", "Big")-> Small If([Column] Is Null,"0","has value") 例については、以下および「 条件に基づく計算カラム」を参照してください。 |
Is Not Null | 式によって空の値 (NULL 値) が生成されるかどうかを判別するために、If または Case ステートメント内で使用されます。 例: If([Column] Is Not Null, "value was not null", "value was null") 式に空の値 (NULL 値) が含まれている場合は、SN 関数 (「変換関数」を参照) を使用して、NULL 値を指定された値で置換することができます。 |
Is Null |
式によって空の値 (NULL 値) が生成されるかどうかを判別するために、If または Case ステートメント内で使用されます。 例: If([Column] Is Null, "value was null", "value was not null") 式に空の値 (NULL 値) が含まれている場合は、SN 関数 (「変換関数」を参照) を使用して、NULL 値を指定された値で置換することができます。 |
式での if の使用についての詳細:
式で If ステートメントを使用している場合、最初の引数の条件で、3 番目の引数で検証される値を制限します。動作を理解するため、例として最初に次のような単純な整数カラムを取ってみます。
次の式を使用して、計算カラムを挿入します。
if(Col1 < 2, Max(Col1), Max(Col1))
この結果、2 つの異なる値を持つ新しいカラムが作成されます。1 つは、2 未満のすべての値の中の最大値を表示するカラム、もう 1 つは、残りの値の中の最大値を示すカラム (これはまた、カラム全体の最大値でもあります) です。
If関数は、カラムを 2 つのグループに分割してから、新しいグループの式の検証を続けます。
代わりに Percentile 式を使用している場合、最初の条件でどのようにカラムを分割したかによって、同じパーセンタイル式でも異なる結果となります。
次の 2 つの演算式を使用して 2 つのカラムを挿入します。
if (Col2 < 4, 0, Percentile(Col2, 70))
if (Col2 < 6, 0, Percentile(Col2, 70))
次の結果が得られます。
パーセンタイルの値は、「If」でどのようにデータをグループ化したかにより変化します。式での条件の使用についての詳細:
条件式を使用する場合、「when」以降の条件がカラム全体で計算されます。「then」以降の引数が、「when」条件で定義されたローに対し計算されます。複数の「when- then」のペアが式に含まれている場合、「then」は、最後の条件だけでなく前のすべての条件により制限されます。
単純な整数カラムを使用した例:
2 つの計算カラム (Case Min と Case Max) を、次の式を使用して挿入します。
Case Min:
case when [Col1]<Avg([Col1]) then Min([Col1]) when [Col1]<(Avg([Col1]) + 1) then Min([Col1]) else Min([Col1]) end
Case Max:
case when [Col1] < Avg([Col1]) then Max([Col1]) when [Col1] < (Avg([Col1]) + 1) then Max([Col1]) else Max([Col1]) end
結果は次のようになります。