【每日一练:SQL】获取tname字段最后一个#后面的字符

SQL题:
用SQL语句找出test_shop表tname字段中最后一个“#”后面的字符
数据如下:
ID      tname
1       CRM0228#016#112
2       CRM0228#2#04#07893
3       CRM0228#32#2#T#563
4       CRM0228#dd

解答:

数据库版本:Oracle 11g

--创建表
create table test_shop(id int,tname varchar2(20));

insert into test_shop values(1,'CRM0228#016#112');
insert into test_shop values(2,'CRM0228#2#04#07893');
insert into test_shop values(3,'CRM0228#32#2#T#563');
insert into test_shop values(4,'CRM0228#dd');

commit;

--查询数据
select * from test_shop;

ID    TNAME
1    CRM0228#016#112
2    CRM0228#2#04#07893
3    CRM0228#32#2#T#563
4    CRM0228#dd

思路:
使用substr函数获取最后一个#后面的数据,因最后一个#的位置不固定,这就需要借助另一个函数instr来获取最后一个#的位置;
--相关SQL

select substr(tname,instr(tname,'#',-1) + 1) last_char
  from test_shop;

LAST_CHAR
112
07893
563
dd

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值