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