SQL 嵌入引号,你想在字符串常量里嵌入引号,并且希望使用 SQL 产生如下所示的结果。
SQL 嵌入引号 问题描述
你想在字符串常量里嵌入引号,并且希望使用 SQL 产生如下所示的结果。
QMARKS
--------------
g'day mate
beavers' teeth
'
SQL 嵌入引号 解决方案
下面的 3 个 SELECT
语句展示了使用引号的不同方式:在一个字符串的中间插入引号和单独使用引号。
1 select 'g''day mate' qmarks from t1 union all
2 select 'beavers'' teeth' from t1 union all
3 select '''' from t1
SQL 嵌入引号 扩展知识
讨论引号的处理时,把它和圆括号做类比通常会更容易理解。我们如果写下左括号,也必须接着写下右括号。引号也是一样。要记住,在任何字符串里引号的个数都应该是一个偶数。要想在字符串中间插入引号,需要使用两个引号才行。
select 'apples core', 'apple''s core',
case when '' is null then 0 else 1 end
from t1
'APPLESCORE 'APPLE''SCOR CASEWHEN''ISNULLTHEN0ELSE1END
----------- ------------ -----------------------------
apples core apple's core 0
下面的查询用于揭示引号的真正作用。两个外层的引号用于定义一个字符串常量,在该字符串常量里还使用了两个引号来代表一个引号,我们实际上希望它显示的内容就是这一个引号。
select '''' as quote from t1
Q
-
'
处理引号时,还要记住如果一个字符串里只包含两个引号,并且这两个引号中间没有任何字符,那么这个字符串是 Null
。