논리 함수
아래의 목록에는 표현식에 사용할 수 있는 논리 함수가 나와 있습니다.
함수 | 설명 |
---|---|
Case | case 문은 두 가지 형태로 사용됩니다. 간단: 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은 일반적으로 비교의 결과로, 부울 형식입니다. Arg2와 Arg3은 모든 형식일 수 있지만 둘 다 같은 형식이거나 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 문의 동작 원리를 이해하기 위해 다음과 같은 간단한 정수 컬럼을 예로 들 수 있습니다.
다음 표현식을 사용하여 계산된 컬럼을 삽입합니다.
if(Col1 < 2, Max(Col1), Max(Col1))
그러면 두 개의 다른 값을 갖는 새 컬럼이 생성됩니다. 두 값 중 하나는 2보다 작은 모든 값의 최대값을 위한 것이고 다른 하나는 나머지 값의 최대값(전체 컬럼의 최대값이기도 함)을 표시합니다.
If 함수는 컬럼을 두 그룹으로 분할한 다음 계속해서 새 그룹에 대해 표현식을 평가하도록 설계되었습니다.
Percentile 표현식을 대신 사용할 경우 첫 번째 조건이 컬럼을 분할한 방법에 따라 동일한 백분위수 표현식에 대한 결과가 달라집니다.
다음 두 표현식을 사용하여 두 컬럼을 삽입합니다.
if (Col2 < 4, 0, Percentile(Col2, 70))
if (Col2 < 6, 0, Percentile(Col2, 70))
그러면 다음과 같은 결과를 얻습니다.
표시된 것처럼 백분위수 값은 'If'가 데이터를 그룹화한 방법에 따라 변경됩니다.표현식에서 case 사용에 대한 자세한 정보:
case 표현식으로 작업할 경우에는 "when" 다음의 조건이 전체 컬럼에 대해 계산됩니다. "then" 뒤의 인수는 "when" 조건에 의해 정의된 행에 대해 계산됩니다. 표현식에 여러 "when- then" 쌍이 포함된 경우 "then"은 마지막 조건뿐 아니라 이전의 모든 조건에 의해 제한됩니다.
단순한 정수 컬럼을 사용하는 예:
다음 표현식을 사용하여 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
결과: