Kusto의 모든 스칼라 데이터 형식에는 누락된 값을 나타내는 특수 값이 있습니다. 이 값을 null 값 또는 null이라고 부릅니다.
참고 항목
데이터 형식은 string null 값을 지원하지 않습니다.
Null 리터럴
스칼라 형식 T 의 null 값은 null 리터럴 T(null)로 쿼리 언어로 표시됩니다.
다음 쿼리는 null 값으로 가득 찬 단일 행을 반환합니다.
print bool(null), datetime(null), dynamic(null), guid(null), int(null), long(null), real(null), double(null), timespan(null)
null 값에 대한 조건자
스칼라 함수 isnull() 를 사용하여 스칼라 값이 null 값인지 확인할 수 있습니다. 해당 함수 isnotnull() 를 사용하여 스칼라 값이 null 값이 아닌지 확인할 수 있습니다.
참고 항목
형식은 string null 값을 지원하지 않으므로 함수와 isempty() 함수를 isnotempty() 사용하는 것이 좋습니다.
Null 값의 같음 및 같지 않음
-
같음 (
==): 두 null 값에 같음 연산자를 적용하면 생성됩니다bool(null). null 값에 같음 연산자를 적용하면 null이 아닌 값이 생성됩니다bool(false). -
같지 않음 (
!=): 두 null 값에 같지 않음 연산자를 적용하면 생성됩니다bool(null). null 값에 같지 않음 연산자를 적용하면 null이 아닌 값이 생성됩니다bool(true).
예시:
datatable(val:int)[5, int(null)]
| extend IsBiggerThan3 = val > 3
| extend IsBiggerThan3OrNull = val > 3 or isnull(val)
| extend IsEqualToNull = val == int(null)
| extend IsNotEqualToNull = val != int(null)
출력
| 발 | IsBiggerThan3 | IsBiggerThan3OrNull | IsEqualToNull | IsNotEqualToNull |
|---|---|---|---|---|
| 5 | 맞다 | 맞다 | 거짓 | 맞다 |
| 영 | 영 | 맞다 | 영 | 영 |
Null 값 및 집계 함수
null 값을 포함하는 엔터티에 다음 연산자를 적용하면 null 값이 무시되고 계산에 포함되지 않습니다.
- 공변성()
- covarianceif()
- 공변성()
- covariancepif()
- dcount()
- dcountif()
- make_bag()
- make_bag_if()
- make_list()
- make_list_if()
- make_set()
- make_set_if()
- stdev()
- stdevif()
- sum()
- sumif()
- variance()
- varianceif()
- 분산()
- variancepif()
Null 값 및 연산자 where
where 연산자는 부울 식을 사용하여 각 입력 레코드를 출력에 내보내는지 여부를 결정합니다. 이 연산자는 null 값을 마치 null 값으로 처리합니다 bool(false). 조건자가 null 값을 반환하는 레코드는 삭제되고 출력에 표시되지 않습니다.
예시:
datatable(ival:int, sval:string)[5, "a", int(null), "b"]
| where ival != 5
출력
| ival | sval |
|---|---|
| 영 | b |
Null 값 및 이진 연산자
이진 연산자는 두 스칼라 값을 허용하고 세 번째 값을 생성하는 스칼라 연산자입니다. 예를 들어 보다 큼(>) 및 부울 AND(&>)는 이진 연산자입니다.
이 규칙에 대한 예외에 명시된 경우를 제외하고 모든 이진 연산자의 경우 규칙은 다음과 같습니다.
이진 연산자에 입력된 값 중 하나 또는 둘 다 null 값인 경우 이진 연산자의 출력도 null 값입니다. 즉, null 값은 "고정"입니다.
이 규칙에 대한 예외
- 같음(
==) 및 같지 않음(!=) 연산자의 경우 값 중 하나가 null이고 다른 값이 null이 아니면 결과는 각각 또는bool(false)bool(true)그 결과입니다. - 논리 AND(&> 연산자)의 경우 값
bool(false)중 하나가 있으면 결과는 다음과 같습니다bool(false). - 논리 OR(
||) 연산자의 경우 값bool(true)중 하나가 있으면 결과는 다음과 같습니다bool(true).
예시:
datatable(val:int)[5, int(null)]
| extend Add = val + 10
| extend Multiply = val * 10
출력
| 발 | 추가 | 곱하기 |
|---|---|---|
| 5 | 15 | 50 |
| 영 | 영 | 영 |
Null 값 및 논리 NOT(!) 연산자
인수가 null 값인 경우 논리 NOT 연산 자 not() 는 값을 bool(null) 생성합니다.
Null 값 및 연산자 in
- in 연산자는 같음 비교의 논리적 OR처럼 동작합니다.
- 연산자는
!in같지 않음 비교의 논리AND처럼 동작합니다.
Null 값 및 데이터 수집
대부분의 데이터 형식에서 데이터 원본의 누락된 값은 해당 테이블 셀에 null 값을 생성합니다. 그러나 형식 string 및 CSV(또는 CSV와 유사한) 데이터 형식의 열은 이 규칙의 예외이며 누락된 값은 빈 문자열을 생성합니다.
예시:
.create table T(a:string, b:int)
.ingest inline into table T
[,]
[ , ]
[a,1]
T
| project a, b, isnull_a=isnull(a), isempty_a=isempty(a), stlen_a=strlen(a), isnull_b=isnull(b)
출력
| a | b | isnull_a | isempty_a | strlen_a | isnull_b |
|---|---|---|---|---|---|
| 거짓 | 맞다 | 0 | 맞다 | ||
| 거짓 | 거짓 | 1 | 맞다 | ||
| a | 1 | 거짓 | 거짓 | 1 | 거짓 |
참고 항목
- Kusto.Explorer에서 위의 쿼리를 실행하면 모든
true값이 로1표시되고 모든false값이 표시됩니다0. - Kusto는 테이블의 열에 null 값이 없도록 제한하는 방법을 제공하지 않습니다. 즉, SQL
NOT NULL의 제약 조건과 동일하지 않습니다.
참고 항목
Kusto는 테이블의 열에 null 값이 없도록 제한하는 방법을 제공하지 않습니다. 즉, SQL NOT NULL 의 제약 조건과 동일하지 않습니다.