QUOTE_NULLABLE
返回适当引用的给定字符串,用作 SQL 语句字符串中的字符串字面量;或者,如果实参为 NULL,则返回不带引号的字符串 NULL
。嵌入的单引号和反斜杠将会适当加倍。
行为类型
不可变语法
QUOTE_NULLABLE ( string-expression )
参数
- <<<<<<<
-
string-expression
- 解析为一个或多个字符串以格式化为字符串文本的实参。如果 string-expression 解析为 NULL 值,则 QUOTE_NULLABLE 返回
NULL
。 ======= string-expression
- 解析为一个或多个字符串以格式化为字符串字面量的实参。如果 string-expression 解析为 NULL 值,则 QUOTE_NULLABLE 返回
NULL
。
示例
以下示例使用表 lead_vocalists
,其中 Cher 和 Sting 的名字 (fname
) 分别设置为 NULL
和空字符串。
=> SELECT * from lead_vocalists ORDER BY lname DESC;
fname | lname | band
--------+---------+-------------------------------------------------
Stevie | Winwood | ["Spencer Davis Group","Traffic","Blind Faith"]
| Sting | ["Police"]
Grace | Slick | ["Jefferson Airplane","Jefferson Starship"]
Diana | Ross | ["Supremes"]
Mick | Jagger | ["Rolling Stones"]
| Cher | ["Sonny and Cher"]
(6 rows)
=> SELECT * FROM lead_vocalists WHERE fname IS NULL;
fname | lname | band
-------+-------+--------------------
| Cher | ["Sonny and Cher"]
(1 row)
=> SELECT * FROM lead_vocalists WHERE fname = '';
fname | lname | band
-------+-------+------------
| Sting | ["Police"]
(1 row)
以下查询使用 QUOTE_NULLABLE。与 QUOTE_LITERAL 类似,QUOTE_NULLABLE 使用单引号设置字符串值,包括空字符串。与 QUOTE_LITERAL 不同,QUOTE_NULLABLE 对 NULL 值输出 NULL
:
=> SELECT QUOTE_NULLABLE (fname) "First Name", QUOTE_NULLABLE (lname) "Last Name", band FROM lead_vocalists ORDER BY fname DESC;
First Name | Last Name | band
------------+-----------+-------------------------------------------------
NULL | 'Cher' | ["Sonny and Cher"]
'Stevie' | 'Winwood' | ["Spencer Davis Group","Traffic","Blind Faith"]
'Mick' | 'Jagger' | ["Rolling Stones"]
'Grace' | 'Slick' | ["Jefferson Airplane","Jefferson Starship"]
'Diana' | 'Ross' | ["Supremes"]
'' | 'Sting' | ["Police"]
(6 rows)