다음을 통해 공유


STRING 형식

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

이 형식은 길이가 0보다 크거나 같은 문자 시퀀스를 지원합니다.

구문

STRING

리터럴

[r|R]'c [ ... ]' [...]
  • r 또는 R

    적용 대상:체크 표시됨 Databricks SQL 체크 표시됨 Databricks Runtime 10.4 LTS 이상

    "원시 리터럴을 나타내는 선택적 접두사입니다."

  • c

    유니코드 문자 집합의 모든 문자입니다.

다음 이스케이프 시퀀스는 일반 문자열 리터럴(r 접두사 없이)에서 인식되고 다음 규칙에 따라 대체됩니다.

  • \0 ->\u0000, 코드 0이 있는 유니코드 문자
  • \b ->\u0008, 백스페이스;
  • \n ->\u000a, 줄 바꿈;
  • \r ->\u000d, 캐리지 리턴;
  • \t ->\u0009, 가로 탭;
  • \Z ->\u001A, 대체;
  • \% ->\%;
  • \_ ->\_;
  • \<other char> -><other char> 슬래시를 건너뛰고 문자를 그대로 둡니다.

문자열에 r 접두사가 있는 경우 이스케이프 문자가 없습니다.

STRING 형식의 고유 데이터 정렬은 사용되는 컨텍스트에서 상속됩니다.

  • 함수에 의해 생성된 문자열은 함수의 입력 인수에서 데이터 정렬을 파생합니다.
  • CREATE 또는 ALTER 또는 TABLE 내에서, 기본 정렬은 해당 VIEW, FUNCTION, 또는 TABLE의 기본 정렬과 일치합니다. VIEW, FUNCTION
  • 최상위 수준 UPDATE, DELETE, INSERT, MERGE 또는 쿼리 문의 컨텍스트 내에서 기본 데이터 정렬은 UTF8_BINARY입니다.

후행 공백을 무시하는 데이터 정렬의 경우 COLLATE UTF8_BINARY_RTRIM 절을 사용합니다.

자세한 내용은 정렬 우선순위 규칙을 참조하세요.

리터럴 연결

적용 대상:선택됨 Databricks Runtime 18.0 이상

concat 함수 또는 || 연산자를 사용하지 않고 문자열 리터럴을 직접 연결할 수 있습니다. 이 방법은 다음을 편리하게 수행할 수 있습니다.

  • 긴 리터럴을 여러 줄로 나누기
  • 식을 사용할 수 없는 테이블, 절, 절과 같은 곳에서 문자열 리터럴과 문자열 매개 변수 마커를 결합하십시오. 예를 들어 테이블 LOCATION또는 OPTIONSCOMMENT 절입니다.

참고

작은따옴표() 대신 큰따옴표("')를 사용하여 문자열 리터럴을 구분할 수 있지만 표준 SQL이 아니기 때문에 권장되지 않습니다.

경고

일부 클라이언트 인터페이스는 SQL 파서로 보내기 전에 문자열에서 매크로 대체를 수행합니다. 예를 들어 Databricks 노트북에서는 달러 기호가 $을 소개하며, 문자열 리터럴에서 보존되기 위해 로 이스케이프해야 합니다.

예제

> SELECT 'Spark';
  Spark

> SELECT CAST(5 AS STRING);
  5

> SELECT 'O\'Connell'
  O'Connell

> SELECT 'Some\nText'
  Some
  Text

> SELECT r'Some\nText'
  Some\nText

> SELECT '서울시'
  서울시

> SELECT ''

> SELECT '\\'
  \

> SELECT r'\\'
  \\

-- From a notbook cell (without a widget 'e' being defined)
> SELECT 'Hou$e', 'Hou\$e', r'Hou$e', r'Hou\$e'
  Hou  Hou$e  Hou  Hou$e

> SELECT COLLATION('hello');
  UTF8_BINARY

> CREATE TEMPORARY VIEW v DEFAULT COLLATION UNICODE_CI
  AS SELECT 'hello' AS c1;
> SELECT COLLATION FOR(c1) FROM v;
  UNICODE_CI

> EXECUTE IMMEDIATE 'SELECT \'Hello \' :loc \'!\'' USING 'world' AS loc;
  Hello World!

> EXECUTE IMMEDIATE
    'SELECT '
        '1 AS one,'
        '2 AS two';
  1 2