动态sql单引号
⑴ Oracle中的单引号怎么转义
1、在转义特殊字符的时候通常使用的就是单引号。但这种转义方式很不直观。
⑵ 怎样在sql语句的in子句中使用单引号
用动态语句吧
declare @f varchar(20)
set @f='''张三'',''李四'''
declare @sqlstr varchar(8000)
set @sqlstr='
SELECT *
FROM INS_ReportIndex where fillperson in ('+@f+') '
exec (@sqlstr)
⑶ SQL语句中转义字符怎么写
0、特殊转义:单引号
--
用2个单引号''
两种比较常见的方式
1、用中括号[]转义
WHERE
ColumnA
LIKE
'aaa[_]bbb'
---
2、用关键字ESCAPE
转义
WHERE
ColumnA
LIKE
'%aaa/%bbb%'
ESCAPE
'/'
注:
A)方式2不如1方便,适用面也窄小,清晰度也差。
B)方式0在使用动态SQL,尤其是“嵌套
+
代码生成”的高级应用中,很容易出错。
⑷ 详解MyBatis的动态<if>标签
MyBatis中的动态SQL标签,主要应用于根据条件添加WHERE子句的场景。本文将聚焦于动态SQL标签的使用,尤其针对字符串和数字的判断,以MyBatis版本3.5.6为背景进行演示和总结。
### 一. if标签判断字符串
在查询时,常需依据参数判断是否为空或非空,进而为WHERE子句添加条件。对于字符串的判断,标签使用频率极高,通常分为正确、推荐与错误三种写法。
#### 正确写法1
为避免错误,确保''单引号内包含多个字符。
#### 正确写法2
此写法放宽了''单引号内字符的数量限制,一个或多个字符均可。
#### 推荐写法
推荐使用外层单引号、内层双引号的结构,以减少潜在错误。
#### 错误写法
单个字符,如'A',会被误判为字符而非字符串,导致比较错误。而'AA'或'A'.toString()则被正确识别为字符串。
### 二. if标签判断数字
数字的判断同样重要,标签同样适用于判空与值判断,包括正确、推荐与错误写法。
#### 正确写法1
确保''单引号内包含多个数字。
#### 正确写法2
不限制''单引号内数字的数量。
#### 正确写法3
直接在判断条件中使用数字。
#### 推荐写法
推荐的写法与字符串相似,外层单引号内层双引号,有助于避免一些常见的错误。
#### 错误写法
单个数字如'0'会被解析为字符,导致ASCII值的比较错误,需格外注意。
### 总结
在标签的test判断中,遵循外层单引号、内层双引号的原则,能有效避免因误判导致的错误。同时,在OGNL表达式中,确保单引号内包含多个字符,避免被误解析为字符,从而保障查询结果的准确性。