sql,字符串中取数字

比如‘宁155ML21’,表中一个字段都是此类型的,我想取L后面也就是字母后面的数字,中间的ML不一定,有可能是其他的大写字母。用sql查出表中的这个字段字母后面数字的最... 比如‘宁155ML21’,表中一个字段都是此类型的,我想取L后面也就是字母后面的数字,
中间的ML不一定,有可能是其他的大写字母。
用sql查出表中的这个字段字母后面数字的最大值。

在线等
gyingz 我要的是sql不是问题总结呀!
atdeep 我看不懂你的函数。
我只要sql语句……
高手再来试一下吧,我还没找到正确答案啊……

sorry ,linkzq,我用的是oracle9i,and,realsex,我做的不是车牌号生成算法。
所以,两位的我试过了,都不对。
展开
 我来答
freechan10
2019-12-24 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.4万
展开全部

1、创建测试表,

create table test_str(id int, v_str varchar2(20));

2、插入测试数据

insert into test_str values(1,'abc123');

insert into test_str values(2,'ef414219sd');

insert into test_str values(3,'123');

insert into test_str values(4,'dddfg');

commit;

3、查询表中全量数据,select t.* from test_str t;

4、编写语句,取字符串中的数字;

   select t.*, regexp_replace(v_str,'\D','') v_str2 from test_str t;

笃勋盈高旻
2019-12-10 · TA获得超过3838个赞
知道大有可为答主
回答量:3113
采纳率:30%
帮助的人:196万
展开全部
select
substring(所查询字符串,patindex('%[^0-9][0-9]%',所查询字符串)+1,patindex('%[0-9][^0-9]%',所查询字符串)-patindex('%[^0-9][0-9]%',所查询字符串))这个只能查询第一次在字符串出现的数字串,希望可帮到你你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linkzq
2008-07-18 · TA获得超过736个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:0
展开全部
如果你使用的是Oracle 10g (或以上版本)的数据库,则可以使用使用如下语句,比如表名为 test ,其中你关注的那个列名为 cc1 ,则语句如下:

select max(to_number(nvl(regexp_substr(cc1,'[0-9]*$'),0))) from test;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
realsex
2008-07-18 · TA获得超过1259个赞
知道小有建树答主
回答量:717
采纳率:0%
帮助的人:499万
展开全部
这应该是车牌号自动生成的算法吧?
车牌号的前几位是固定的,不会变,总长度一般也不变
在这情况下,可以这样写,得到最大号码
SELECT MAX(RIGHT(Field,2)) AS Expr1
FROM [Table]
GROUP BY LEFT(Field, 6)

如果需要再补上前面的部分,生成完整的号码,如下:
SELECT LEFT(Field, 6)
+ REPLICATE('0', 2 - LEN(MAX(RIGHT(Field, 2))))
+ MAX(RIGHT(Field,2)) AS Expr1
FROM [Table]
GROUP BY LEFT(Field, 6)

已经做了补“0”处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fc82f346e
推荐于2018-03-28 · TA获得超过904个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:184万
展开全部
你如果能确定字母后面的数字长度或者数字前面的长度那就好办了
1.确定数字的长度(例如长度为2)
substr('宁155ML21',length('宁155ML21')-1,2)
其中的2为截取的长度
2.确定前面字母的长度
substr('宁155ML21',7)
如果上面两种都不能确定,我再想想

看看我说的第二种方法,如果能确定数字前面字母的长度,就用
select substr('宁155ML21',7) from table
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式