다음을 통해 공유


Azure Cosmos DB for NoSQL의 스칼라 식

적용 대상: NoSQL

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] ']'

인수

설명
<constant> 상수 값을 나타냅니다. 자세한 내용은 상수 섹션을 참조하세요.
input_alias FROM 절에 도입된 input_alias에서 정의된 값을 나타냅니다.
이 값은 undefined가 되지 않도록 보장되며, 입력에 있는 undefined 값은 건너뜁니다.
<scalar_expression>.property_name 개체의 속성 값을 나타냅니다. 속성이 존재하지 않거나 개체가 아닌 값에서 참조되면 식이 정의되지 않은 값으로 평가됩니다.
<scalar_expression>'['"property_name"|array_index']' 이름이 property_name인 속성 값 또는 배열의 인덱스가 array_index인 배열 요소를 나타냅니다. 속성/배열 인덱스가 존재하지 않거나 속성/배열이 아닌 값에서 참조되면 식이 정의되지 않은 값으로 평가됩니다.
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입니다.
  • 개체를 만들 때 undefined 값이 할당된 속성은 건너뛰고 만든 개체에 포함되지 않습니다.
  • 배열을 만들 때 undefined 값이 할당된 요소 값은 건너뛰고 만든 개체에 포함되지 않습니다. 이렇게 하면 만든 배열이 인덱스를 건너뛰지 않는 방식으로 다음에 정의된 요소가 해당 위치로 이동합니다.