oracle 字符串从后往前截取

在Oracle数据库中,我们可以使用substr函数和greatest函数来实现从字符串的末尾开始截取一定长度的子串。

首先,让我们来了解一下substr函数。substr函数用于从字符串中截取一定长度的子串。它的语法如下:

substr(string, start_position, [length])

其中,string是要截取的字符串,start_position是截取的起始位置,length是要截取的长度。如果省略length参数,则截取从start_position开始到字符串末尾的所有字符。

例如,我们要从字符串’Hello World’中截取从第6个字符开始的所有字符,可以使用以下语句:

select substr('Hello World', 6) from dual;

执行结果为’ World’。

接下来,让我们来了解一下greatest函数。greatest函数用于返回一组值中的最大值。它的语法如下:

greatest(value1, value2, ...)

其中,value1、value2等是要比较的值。

例如,我们要比较字符串’Hello World’和字符串’Hello’的长度,可以使用以下语句:

select greatest(length('Hello World'), length('Hello')) from dual;

执行结果为11,即’Hello World’的长度。

现在,我们可以结合substr函数和greatest函数来实现从字符串的末尾开始截取一定长度的子串。具体实现方法如下:

select substr(string, greatest(length(string) - length + 1, 1), length) from dual;

其中,string是要截取的字符串,length是要截取的长度。这个语句的意思是,先计算出从字符串末尾开始截取length个字符的起始位置,然后使用substr函数截取子串。

例如,我们要从字符串’Hello World’中截取从末尾开始的5个字符,可以使用以下语句:

select substr('Hello World', greatest(length('Hello World') - 5 + 1, 1), 5) from dual;

执行结果为’World’。

总结一下,我们可以使用substr函数和greatest函数来实现从字符串的末尾开始截取一定长度的子串。具体实现方法如下:

select substr(string, greatest(length(string) - length + 1, 1), length) from dual;
--本人实际使用
select substr(remark,greatest(-400,-length(remark)),400) from table; 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值