논리 함수

아래의 목록에는 표현식에 사용할 수 있는 논리 함수가 나와 있습니다.

함수 설명
Case case 문은 두 가지 형태로 사용됩니다.

간단:

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은 일반적으로 비교의 결과로, 부울 형식입니다. Arg2Arg3은 모든 형식일 수 있지만 둘 다 같은 형식이거나 Null이어야 합니다.

두 번째와 세 번째 인수는 행의 하위 집합만 처리하므로 모든 컬럼 기반 및 누적 방법에 영향을 줍니다. 자세한 내용은 아래 내용을 참조하십시오.

예:

If([Count] > 3, "many", "few")

If(true, null, null) -> (비어 있음)

If(true, 1, null) -> 1

If(false, null, 2) -> 2

If(null, 1, 2) -> (비어 있음)

If(1 < 2, "Small", "Big")-> Small

If([Column] Is Null,"0","has value")

더 많은 예제는 아래와 조건에 기반한 계산된 컬럼을 참조하십시오.

Is Not Null If 또는 Case 문 내에서 표현식의 결과가 비어 있는 값(Null 값)인지 여부를 확인하는 데 사용됩니다.

예:

If([Column] Is Not Null, "value was not null", "value was null")

표현식에 비어 있는 값(Null 값)이 있는 경우 SN 함수(변환 함수 참조)를 사용하여 Null 값을 지정된 값으로 대체할 수 있습니다.

Is Null

If 또는 Case 문 내에서 표현식의 결과가 비어 있는 값(Null 값)인지 여부를 확인하는 데 사용됩니다.

예:

If([Column] Is Null, "value was null", "value was not null")

표현식에 비어 있는 값(Null 값)이 있는 경우 SN 함수(변환 함수 참조)를 사용하여 Null 값을 지정된 값으로 대체할 수 있습니다.

표현식에서 if 사용에 대한 자세한 정보:

표현식에서 If 문을 사용할 경우 첫 번째 인수의 조건이 세 번째 인수에서 평가할 값을 제한합니다. If 문의 동작 원리를 이해하기 위해 다음과 같은 간단한 정수 컬럼을 예로 들 수 있습니다.

Col1
1
2
3

다음 표현식을 사용하여 계산된 컬럼을 삽입합니다.

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

그러면 두 개의 다른 값을 갖는 새 컬럼이 생성됩니다. 두 값 중 하나는 2보다 작은 모든 값의 최대값을 위한 것이고 다른 하나는 나머지 값의 최대값(전체 컬럼의 최대값이기도 함)을 표시합니다.

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

If 함수는 컬럼을 두 그룹으로 분할한 다음 계속해서 새 그룹에 대해 표현식을 평가하도록 설계되었습니다.

Percentile 표현식을 대신 사용할 경우 첫 번째 조건이 컬럼을 분할한 방법에 따라 동일한 백분위수 표현식에 대한 결과가 달라집니다.

Col2
1
2
3
4
5
6
7
8
9
10

다음 두 표현식을 사용하여 두 컬럼을 삽입합니다.

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'가 데이터를 그룹화한 방법에 따라 변경됩니다.

표현식에서 case 사용에 대한 자세한 정보:

case 표현식으로 작업할 경우에는 "when" 다음의 조건이 전체 컬럼에 대해 계산됩니다. "then" 뒤의 인수는 "when" 조건에 의해 정의된 행에 대해 계산됩니다. 표현식에 여러 "when- then" 쌍이 포함된 경우 "then"은 마지막 조건뿐 아니라 이전의 모든 조건에 의해 제한됩니다.

단순한 정수 컬럼을 사용하는 예:

Col1
1
2
3
4
5
6
7
8

다음 표현식을 사용하여 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
함수를 참조하십시오.