escape wildcard in between and operator

arden1019 2012-02-08 04:21:36
假设 表 table_name 的 column_A 有这样的数据

A_1
A_2
A_3
A1
A2
B_1
B_2
B_3
B1
B2


如果使用like, 我可以这样:

select * from table_name where column_A like 'A\_*' escape '\' 来忽略'_'选出

A_1
A_2
A_3

而我想用between and 时 怎么办?

select * from table_name where column_A between 'A\_*' and 'B\_*'


求SQL专家
...全文
139 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
arden1019 2012-02-10
  • 打赏
  • 举报
回复
我的用户界面里 有两个input, 一个是from 一个是to, 所以使用了 between and 。 将用户的输入转换成 正则表达式是一件麻烦的工作。
minitoy 2012-02-09
  • 打赏
  • 举报
回复
between对字符串的比较类似c里strcmp
minitoy 2012-02-09
  • 打赏
  • 举报
回复
select * from T115 where F1 between 'A_' and 'A_Z'
minitoy 2012-02-09
  • 打赏
  • 举报
回复
select * from table_name where column_A between 'A\_' and 'A\_Z'
我心飞翔 2012-02-09
  • 打赏
  • 举报
回复
实测数据:

CREATE TABLE T115
(
ID VARCHAR2(20),
F1 VARCHAR2(20)
);

INSERT INTO T115 VALUES('01', 'A_1');
INSERT INTO T115 VALUES('02', 'A_2');
INSERT INTO T115 VALUES('03', 'A_3');
INSERT INTO T115 VALUES('04', 'A1');
INSERT INTO T115 VALUES('05', 'A2');
INSERT INTO T115 VALUES('06', 'B_1');
INSERT INTO T115 VALUES('07', 'B_2');
INSERT INTO T115 VALUES('08', 'B_3');
INSERT INTO T115 VALUES('09', 'B1');
INSERT INTO T115 VALUES('10', 'B2');


实测结果:
horizonlyhw 2012-02-08
  • 打赏
  • 举报
回复
试试 regexp_like 这个呢

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧