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

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

간단:

case Arg1 when 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) -> (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 NullIf 또는 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보다 작은 모든 값의 최대값을 위한 것이고 

- 다른 하나는 나머지 값의 최대값(전체 컬럼의 최대값이기도 함)을 표시합니다.


Col1if(Col1 < 2, Max(Col1), Max(Col1))
11
23
33

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


백분위수 표현식을 대신 사용할 경우 

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

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))

그러면 다음과 같은 결과를 얻습니다.


Col2if (Col2 < 4, 0, Percentile(Col2, 70))if (Col2 < 6, 0, Percentile(Col2, 70))
100
200
300
48.20
58.20
68.28.8
78.28.8
88.28.8
98.28.8
108.28.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


'도구 분야 > [TIBCO] Spotfire' 카테고리의 다른 글

[함수]over 함수  (0) 2018.09.03
[함수] 산술 함수  (0) 2018.09.03
[함수] 날짜 및 시간 함수  (0) 2018.09.03
[함수] 캐스트 방법  (0) 2018.09.03
[함수] 변환 함수  (0) 2018.09.03

+ Recent posts