适用于:
Databricks SQL
Databricks Runtime
类型支持长度大于或等于 0 的所有字符序列。
语法
STRING
文本
[r|R]'c [ ... ]'
r或R适用于:
Databricks SQL
Databricks Runtime 10.4 LTS 及更高版本表示原始文本的可选前缀。
cUnicode 字符集中的任意字符。
以下转义序列会在常规字符串文本(无 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、INSERTMERGE 或查询语句的上下文中,默认排序规则为
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