이 절은 SELECT 스칼라 식을 지원합니다. 스칼라 식은 단일 값을 얻기 위해 평가할 수 있는 기호와 연산자의 조합입니다. 스칼라 식의 예로는 상수, 속성 참조, 배열 요소 참조, 별칭 참조 또는 함수 호출이 있습니다. 스칼라 식은 연산자를 사용하여 복합 식으로 결합할 수 있습니다.
구문
<scalar_expression> ::=
<constant>
| input_alias
| parameter_name
| <scalar_expression>.property_name
| <scalar_expression>'['"property_name"|array_index']'
| unary_operator <scalar_expression>
| <scalar_expression> binary_operator <scalar_expression>
| <scalar_expression> ? <scalar_expression> : <scalar_expression>
| <scalar_function_expression>
| <create_object_expression>
| <create_array_expression>
| (<scalar_expression>)
<scalar_function_expression> ::=
'udf.' Udf_scalar_function([<scalar_expression>][,…n])
| builtin_scalar_function([<scalar_expression>][,…n])
<create_object_expression> ::=
'{' [{property_name | "property_name"} : <scalar_expression>][,…n] '}'
<create_array_expression> ::=
'[' [<scalar_expression>][,…n] ']'
Arguments
| Description | |
|---|---|
<constant> |
상수 값을 나타냅니다. 자세한 내용은 상수 섹션을 참조하세요. |
input_alias |
절에 도입된 FROM 값으로 input_alias 정의된 값을 나타냅니다. |
| 이 값은 입력에서 정의되지 않은 정의되지 않은 값을 건너뛰지 않도록 보장됩니다. | |
<scalar_expression>.property_name |
개체의 속성 값을 나타냅니다. 속성이 없거나 개체가 아닌 값에서 속성이 참조되는 경우 식은 정의되지 않은 값으로 평가됩니다. |
<scalar_expression>'['"property_name"|array_index']' |
배열의 인덱 array_index 스가 있는 이름 property_name 또는 배열 요소가 있는 속성의 값을 나타냅니다. 속성/배열 인덱스가 없거나 개체/배열이 아닌 값에서 속성/배열 인덱스를 참조하는 경우 식은 정의되지 않은 값으로 평가됩니다. |
unary_operator <scalar_expression> |
단일 값에 적용되는 연산자를 나타냅니다. |
<scalar_expression> binary_operator <scalar_expression> |
두 값에 적용되는 연산자를 나타냅니다. |
<scalar_function_expression> |
함수 호출의 결과로 정의된 값을 나타냅니다. |
udf_scalar_function |
사용자 정의 스칼라 함수의 이름입니다. |
builtin_scalar_function |
기본 제공 스칼라 함수의 이름입니다. |
<create_object_expression> |
지정된 속성과 해당 값을 사용하여 새 개체를 만들어 얻은 값을 나타냅니다. |
<create_array_expression> |
지정된 값을 요소로 사용하여 새 배열을 만들어 얻은 값을 나타냅니다. |
parameter_name |
지정된 매개 변수 이름의 값을 나타냅니다. 매개 변수 이름에는 첫 번째 문자로 @가 하나 있어야 합니다. |
예시
스칼라 식의 가장 일반적인 예는 수학 수식입니다.
SELECT VALUE
((2 + 11 % 7) - 2) / 2
[
2
]
다음 예제에서 스칼라 식의 결과는 부울입니다.
SELECT
("Redmond" = "WA") AS isCitySameAsState,
("WA" = "WA") AS isStateSameAsState
[
{
"isCitySameAsState": false,
"isStateSameAsState": true
}
]
비고
- 기본 제공 또는 사용자 정의 스칼라 함수를 호출할 때 모든 인수를 정의해야 합니다. 인수가 정의되지 않은 경우 함수가 호출되지 않고 결과가 발생합니다
undefined. - 정의되지 않은 값이 할당된 모든 속성은 건너뛰고 개체를 만들 때 만든 개체에 포함되지 않습니다.
- 정의되지 않은 값이 할당된 모든 요소 값은 건너뛰고 배열을 만들 때 만든 개체에 포함되지 않습니다. 이 건너뛰기를 사용하면 생성된 배열이 인덱스를 건너뛰지 않는 방식으로 다음 정의된 요소가 해당 위치에 배치됩니다.