适用于: Databricks SQL
Databricks Runtime
类型支持长度大于或等于 0 的所有字符序列。
STRING
[r|R]'c [ ... ]'
r
或R
适用于:
Databricks SQL
Databricks Runtime 10.4 LTS 及更高版本
表示原始文本的可选前缀。
c
Unicode 字符集中的任意字符。
以下转义序列会在常规字符串文本(无 r
前缀)中被识别,并根据以下规则替换:
-
\0
->\u0000
,具有代码 0 的 unicode 字符; -
\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
子句。
有关详细信息,请参阅排序规则优先顺序。
注意
虽然可以使用双引号 ("
) 而不是单引号 ('
) 来分隔字符串文本,但不建议这样做,因为这不是标准 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