적용 대상:
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