问个sql语句

kyousuke 2012-02-08 02:14:14
有个字段,是受理单号(数字),但是有些前面有两个字母,有些后面有两个字母,我想要过滤掉后面有字母。
LS12345
12341
23415
34144AA
12341FJ

结果是:
LS12345
12341
23415
...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2012-02-08
  • 打赏
  • 举报
回复
正则表达式应该是好的方法。
mingchaoyan 2012-02-08
  • 打赏
  • 举报
回复
我第一想到的就是正则
如下:

SQL> ed
已写入 file afiedt.buf

1 CREATE TABLE test(
2 col VARCHAR2(10)
3* )
SQL> /

表已创建。

SQL> @c:\sql.sql;

已创建 1 行。


已创建 1 行。


已创建 1 行。


已创建 1 行。


已创建 1 行。

SQL> select * from test;

COL
----------
LS12345
12341
23415
34144AA
12341FJ

SQL> ed
已写入 file afiedt.buf

1 SELECT * FROM test
2* WHERE regexp_like(col,'[^[:alpha:]]$')
SQL> /

COL
----------
LS12345
12341
23415


我心飞翔 2012-02-08
  • 打赏
  • 举报
回复
实测结果:
我心飞翔 2012-02-08
  • 打赏
  • 举报
回复
实测数据:

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

INSERT INTO T114 VALUES('01', 'LS12345');
INSERT INTO T114 VALUES('02', '12341');
INSERT INTO T114 VALUES('03', '23415');
INSERT INTO T114 VALUES('04', '34144AA');
INSERT INTO T114 VALUES('05', '12341FJ');


实测结果:
kyxyljb 2012-02-08
  • 打赏
  • 举报
回复
select XXX
from tablename
where ltrim(substr(XXX, lengthb(XXX) - 2, 2),'1234567890') is not null;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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