QUOTE_LITERAL
返回以适当方式引用的给定字符串,以便用作 SQL 语句字符串中的一个字符串字面量。嵌入的单引号和反斜杠将会加倍。根据 SQL 标准,函数将字符串字面量中的两个连续单引号识别为单引号字符。
行为类型
不可变语法
QUOTE_LITERAL ( string )
参数
- <<<<<<<
-
string-expression
- 解析为一个或多个字符串以格式化为字符串文本的实参。 =======
string-expression
- 解析为一个或多个字符串以格式化为字符串字面量的实参。
示例
在下例中,第一个查询没有返回 Cher 或 Sting 的名字;第二个查询使用 QUOTE_LITERAL,通过单引号设置字符串值,包括空字符串。在这种情况下,Sting 的 fname
设置为空字符串 (''
),而 Cher 的 fname
为空,表示设置为 NULL 值:
=> SELECT * FROM lead_vocalists ORDER BY lname ASC;
fname | lname | band
--------+---------+-------------------------------------------------
| Cher | ["Sonny and Cher"]
Mick | Jagger | ["Rolling Stones"]
Diana | Ross | ["Supremes"]
Grace | Slick | ["Jefferson Airplane","Jefferson Starship"]
| Sting | ["Police"]
Stevie | Winwood | ["Spencer Davis Group","Traffic","Blind Faith"]
(6 rows)
=> SELECT QUOTE_LITERAL (fname) "First Name", QUOTE_NULLABLE (lname) "Last Name", band FROM lead_vocalists ORDER BY lname ASC;
First Name | Last Name | band
------------+-----------+-------------------------------------------------
| 'Cher' | ["Sonny and Cher"]
'Mick' | 'Jagger' | ["Rolling Stones"]
'Diana' | 'Ross' | ["Supremes"]
'Grace' | 'Slick' | ["Jefferson Airplane","Jefferson Starship"]
'' | 'Sting' | ["Police"]
'Stevie' | 'Winwood' | ["Spencer Davis Group","Traffic","Blind Faith"]
(6 rows)