zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

sql 查询名字中有_的员工

SQL 查询 员工 名字 中有
2023-09-27 14:25:11 时间

select * from emp where ename like '%\_%' escape '\' ;\可以换作任意的字符

select * from emp where ename like '%\%%' escape '\';

 

是'&'不能通过转义字符查找
如果按上面的写法,
select * from emp where ename like '%\&' escape '\'; 
会提示:ORA-01424: 转义符之后字符缺失或非法
可以通过另外的方式进行转义:
select ascii('&') from dual;
ASCII('&')
----------
        38
select * from emp where ename like '%' || chr(38) || '%';

 

在oracle中chr()函数和ascii()是一对反函数
chr()函数将ASCII码转换为字符:ASCII码 --> 字符
ascii('字符')函数获得该字符的ascii码值,将字符转换为ASCII码:字符 --> ASCII码

 

但是,注意%不能用这种方法转义(%号的ascii码为37)因为转出来还是一个%号,还是会当做通配符找出所有的数据