oracle - SQL Oracle 中的通配符
问题描述
我试图在 Oracle DB 中查找以 A、B 或 C 开头的所有名称,我编写了以下语法:
SELECT NUME FROM JUCATORI
WHERE NUME LIKE '[ABC]%';
但它没有给我任何名称(也没有错误),即使我确定我的数据库名称中的名称以 A、B 或 C 开头。
解决方案
LIKE
不适用于字符集。(我认为 T-SQL 扩展LIKE
为处理此类表达式,但 Oracle 的 SQL 没有。)您不会收到错误,因为LIKE '[ABC]%'
查找以左括号开头的字符串,后跟 A,然后是 B,然后是C,然后是右括号
所以要么使用OR
:
SELECT nume FROM jucatori WHERE nume LIKE 'A%' OR nume LIKE 'B%' OR nume LIKE 'C%';
或正则表达式:
SELECT nume FROM jucatori WHERE REGEXP_LIKE(nume, '^[ABC]');
推荐阅读
- r - 在 R 中创建虹膜模型矩阵时出错
- vb.net - 如何在图片框中并排打印三个不同的矩形vb.net
- express - 使用 nonce 或 sha-256 是否允许执行内联事件处理程序?
- java - 在执行文件上传的rest api后,出现500个未记录的错误“连接在响应期间过早关闭”
- python - 我尝试向我的一个类添加一个新属性,但我收到一条错误消息
- google-sheets - 为什么嵌套“独特”功能不起作用?
- svelte-3 - getClientBoundingRect 用于 Svelte 中带有动画的条件渲染元素
- javascript - Javascript最有效的方法来过滤具有多个条件参数的数组
- python - 如何在python中求解复杂的方程?
- docker - docker容器中gitlab-ce服务的repo文件链接重定向到404页面