【Oracle】使用like的时候遇到的问题

【Oracle】使用like的时候遇到的问题

like语句其中的%就代表着一个零或者多个字符,_代表一个字符,%与_可以同时使用

name想查询以‘_’结尾的字符

用这个语句就会有问题

select count(1) from dual where '底壳组件.pdf' like '%_'

LIKE语句与多个下划线一样可以匹配出来数据,一般遇到特殊字符的话,可以使用ESCAPE转义字符来匹配数据字段,并将它查询出来

用下面语句就没问题

select count(1) from dual where '底壳组件.pdf' like '%e_' ESCAPE 'e'

但是这种方式只能对特殊字符,如果想查询‘f’结尾的字符

用下面语句就会报错

select count(1) from dual where '底壳组件.pdf' like '%ef' ESCAPE 'e'

image

因此,为了通用性,在Oracle中,最好使用下面的语句

select count(1) from dual where Substr('底壳组件.pdf',-1) = '_'

这样大部分的情况都是兼用的

posted @ 2024-03-07 10:32  DbWong_0918  阅读(30)  评论(0编辑  收藏  举报