SQL Server中通过reverse取某个最后一次出现的符号后面的内容(字符串反转)
更新时间:2012年07月09日 01:35:45 作者:
昨天在项目中遇到了一个非常简单的问题,需要把SQL Server数据库中保存的一段路径地址取出其文件名,但SQL Server又没有现成的方法,最后在网上找到这样的一个方法,原理是先将字符串反转,取出第一个/的位置,从头进行截取后再次反转
sql语句
reverse(substring(reverse(Path),1,charindex('/',reverse(Path)) - 1))
SQL如何取出一个字符串中最后一个特殊字符右边的字符,例如:10*20*300,怎样得到300?
使用reverse配合charindex来实现。
reverse是把字符串倒置,然后通过charindex来获取倒置之后第一个*的位置,然后使用substring函数进行字符串截取,截取后再使用reverse倒置回来即可。
以下为例子
declare @str varchar(20)
set @str = '10*20*300'
select reverse(substring(reverse(@str),1,charindex('*',reverse(@str)) - 1))
结果是300
以上是SQLSERVER的语法。
ORACLE数据库也有REVERSE函数,不过SUBSTRING要改成SUBSTR,CHARINDEX函数要改成INSTR函数
SELECT reverse(substr(reverse('10*20*300'),1,INSTR(reverse('10*20*300'),'*') - 1)) FROM DUAL;
结果是300
复制代码 代码如下:
reverse(substring(reverse(Path),1,charindex('/',reverse(Path)) - 1))
SQL如何取出一个字符串中最后一个特殊字符右边的字符,例如:10*20*300,怎样得到300?
使用reverse配合charindex来实现。
reverse是把字符串倒置,然后通过charindex来获取倒置之后第一个*的位置,然后使用substring函数进行字符串截取,截取后再使用reverse倒置回来即可。
以下为例子
declare @str varchar(20)
set @str = '10*20*300'
select reverse(substring(reverse(@str),1,charindex('*',reverse(@str)) - 1))
结果是300
以上是SQLSERVER的语法。
ORACLE数据库也有REVERSE函数,不过SUBSTRING要改成SUBSTR,CHARINDEX函数要改成INSTR函数
SELECT reverse(substr(reverse('10*20*300'),1,INSTR(reverse('10*20*300'),'*') - 1)) FROM DUAL;
结果是300
相关文章
CentOS 9 Stream 上如何安装 SQL Server&nb
在CentOS9Stream上安装SQLServer2019,首先需要添加Microsoft的SQLServer存储库,然后使用yum命令安装SQLServer软件包,安装完成后,通过运行特定命令配置SQLServer实例,本文给大家CentOS9 Stream如何安装 SQL Server 2019,感兴趣的朋友一起看看吧2024-11-11
SQL Server并行操作优化避免并行操作被抑制而影响SQL的执行效率
这篇文章主要介绍了SQL Server并行操作优化避免并行操作被抑制而影响SQL的执行效率 的相关资料,需要的朋友可以参考下2016-07-07
SQLserver2019 Express安装及其一些问题解决
本文主要介绍了SQL server 2019 Express 安装及其一些问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-04-04
使用 SQL 服务器时,"评估期已过期"错误消息(解决方法)
这篇文章主要介绍了使用 SQL 服务器时,"评估期已过期"错误消息,本文分步骤给大家分享解决方法,需要的朋友可以参考下2019-12-12


最新评论