다음을 통해 공유


SQL 식

적용 대상:예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime

식은 함수 또는 연산자를 사용하여 열, 필드 또는 변수에 대한 참조나 리터럴을 기준으로 결과를 계산하는 수식입니다.

구문

{ literal |
  named_parameter_marker |
  unnamed_parameter_marker |
  column_reference |
  field_reference |
  parameter_reference |
  CAST expression |
  CASE expression |
  COLLATE expression |
  expr operator expr |
  operator expr |
  expr [ expr ] |
  function_invocation |
  ( expr ) |
  ( expr, expr [, ... ] ) |
  scalar_subquery }

scalar_subquery
  ( query )

expr [ expr ]의 대괄호는 실제 대괄호이며 선택적 구문을 나타내지 않습니다.

매개 변수

  • literal

    데이터 형식에 설명된 형식의 리터럴입니다.

  • named_parameter_marker

    SQL 문을 제출하는 API에서 제공하는 값에 대한 명명되고 형식화된 자리 표시자입니다.

  • unnamed_parameter_marker

    SQL 문을 제출하는 API에서 제공하는 값에 대한 명명되지 않은 형식의 자리 표시자입니다.

  • column_reference

    테이블의 열 또는 열 별칭에 대한 참조입니다.

  • field_reference

    STRUCT 형식의 필드에 대한 참조입니다.

  • parameter_reference

    함수 본문에서 SQL 사용자 정의 함수의 매개 변수에 대한 참조입니다. 참조는 매개 변수의 정규화되지 않은 이름을 사용하거나 함수 이름으로 이름을 정규화할 수 있습니다. 식별자를 확인할 때 매개 변수는 가장 바깥쪽 범위를 구성합니다.

  • CAST expression

    인수를 다른 형식으로 캐스팅하는 식입니다.

  • CASE 식

    조건부 평가를 허용하는 식입니다.

  • COLLATE 식

    문자열 식에 명시적 데이터 정렬을 연결하는 식입니다.

  • expr

    operator와 결합되거나 함수에 대한 인수인 식 자체입니다.

  • 연산자

    단항 또는 이진 연산자입니다.

  • expr [ expr ]

    배열 요소 또는 맵 키에 대한 참조입니다.

  • function_invocation

    기본 제공 또는 사용자 정의 함수의 호출입니다.

    자세한 내용은 function_invocation 참조하세요.

  • ( expr )

    연산자 우선 순위를 재정의하는 강제 우선 순위입니다.

  • ( expr, expr [, … ] )

    둘 이상의 필드의 struct를 만듭니다. 이 표기법은 구조체 함수와 동의어입니다.

  • scalar_subquery:

    • (query)

      단일 열과 최대 하나의 행을 반환해야 하는 쿼리를 기반으로 하는 식입니다.

함수 및 연산자에 대한 페이지는 매개 변수가 예상하는 데이터 형식을 설명합니다. Azure Databricks는 SQL 데이터 형식 규칙을 사용하여 예상 형식으로 암시적 캐스팅을 수행합니다. 제공된 인수에 대해 연산자 또는 함수가 유효하지 않으면 Azure Databricks에서 오류가 발생합니다.

이름 확인에 대한 자세한 내용은 열, 필드, 매개 변수 및 변수 확인을 참조하세요.

상수 식

인수가 없는 리터럴 또는 결정적 함수만을 기반으로 하는 식입니다. Azure Databricks는 식을 실행하고 일반적으로 리터럴이 필요한 결과 상수를 사용할 수 있습니다.

부울 식

BOOLEAN의 결과 형식인 식입니다. 부울 식은 조건 또는 조건자라고도 합니다.

스칼라 하위 쿼리

( query ) 형태의 식입니다. 쿼리는 하나의 열과 최대 하나의 행이 있는 테이블을 반환해야 합니다.

쿼리가 행을 반환하지 않으면 결과는 NULL입니다. 쿼리가 둘 이상의 행을 반환하는 경우 Azure Databricks에서 오류를 반환합니다. 그렇지 않으면 결과는 쿼리에서 반환된 값입니다.

간단한 식

스칼라 하위 쿼리 또는 query 조건자 등과 같이 EXISTS가 포함되지 않은 식입니다.

예제

> SELECT 1;
  1

> SELECT (SELECT 1) + 1;
  2

> SELECT 1 + 1;
  2

> SELECT 2 * (1 + 2);
  6

> SELECT 2 * 1 + 2;
  4

> SELECT substr('Spark', 1, 2);
  Sp

> SELECT c1 + c2 FROM VALUES(1, 2) AS t(c1, c2);
  3

> SELECT a[1] FROM VALUES(array(10, 20)) AS T(a);
  20

> SELECT true;
  true

> SELECT (c1, (c2, c3)) FROM VALUES(1, 2, 3) AS T(c1, c2, c3);
  {"c1":1,"col2":{"c2":2,"c3":3}}