論理関数

以下のリストに、式に使用できる論理関数を示します。

関数 説明
Case Case ステートメントには 2 種類の形態があります。

シンプル:

case Arg1 when Arg2 then Arg3 else Arg4 end

Arg1 の式が評価されて、Arg1Arg2 と等しい場合は 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 はブール型で、通常は比較の結果です。Arg3Arg2 には任意の型を指定できますが、両方とも同じ型、または 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 番目の引数で検証される値を制限します。動作を理解するため、例として最初に次のような単純な整数カラムを取ってみます。

Col1
1
2
3

次の式を使用して、計算カラムを挿入します。

if(Col1 < 2, Max(Col1), Max(Col1))

この結果、2 つの異なる値を持つ新しいカラムが作成されます。1 つは、2 未満のすべての値の中の最大値を表示するカラム、もう 1 つは、残りの値の中の最大値を示すカラム (これはまた、カラム全体の最大値でもあります) です。

Col1 if(Col1 < 2, Max(Col1), Max(Col1))
1 1
2 3
3 3

If関数は、カラムを 2 つのグループに分割してから、新しいグループの式の検証を続けます。

代わりに Percentile 式を使用している場合、最初の条件でどのようにカラムを分割したかによって、同じパーセンタイル式でも異なる結果となります。

Col2
1
2
3
4
5
6
7
8
9
10

次の 2 つの演算式を使用して 2 つのカラムを挿入します。

if (Col2 < 4, 0, Percentile(Col2, 70))

if (Col2 < 6, 0, Percentile(Col2, 70))

次の結果が得られます。

Col2 if (Col2 < 4, 0, Percentile(Col2, 70)) if (Col2 < 6, 0, Percentile(Col2, 70))
1 0 0
2 0 0
3 0 0
4 8.2 0
5 8.2 0
6 8.2 8.8
7 8.2 8.8
8 8.2 8.8
9 8.2 8.8
10 8.2 8.8
パーセンタイルの値は、「If」でどのようにデータをグループ化したかにより変化します。

式での条件の使用についての詳細:

条件式を使用する場合、「when」以降の条件がカラム全体で計算されます。「then」以降の引数が、「when」条件で定義されたローに対し計算されます。複数の「when- then」のペアが式に含まれている場合、「then」は、最後の条件だけでなく前のすべての条件により制限されます。

単純な整数カラムを使用した例:

Col1
1
2
3
4
5
6
7
8

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

結果は次のようになります。

Col1 Case Min Case Max
1 1 4
2 1 4
3 1 4
4 1 4
5 5 5
6 6 8
7 6 8
8 6 8
関数」も参照してください。