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并行操作優(yōu)化避免并行操作被抑制而影響SQL的執(zhí)行效率
這篇文章主要介紹了SQL Server并行操作優(yōu)化避免并行操作被抑制而影響SQL的執(zhí)行效率 的相關資料,需要的朋友可以參考下2016-07-07
SQL SERVER先判斷視圖是否存在然后再創(chuàng)建視圖的語句
SQL SERVER中先判斷視圖是否存在,使用IF NOT EXISTS,然后再創(chuàng)建視圖,使用create view,整個過程如下2014-08-08
SQLserver2019?Express安裝及其一些問題解決
本文主要介紹了SQL?server?2019?Express?安裝及其一些問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-04-04
使用 SQL 服務器時,"評估期已過期"錯誤消息(解決方法)
這篇文章主要介紹了使用 SQL 服務器時,"評估期已過期"錯誤消息,本文分步驟給大家分享解決方法,需要的朋友可以參考下2019-12-12

