SQL Server中通過reverse取某個最后一次出現(xiàn)的符號后面的內(nèi)容(字符串反轉(zhuǎn))
更新時間:2012年07月09日 01:35:45 作者:
昨天在項目中遇到了一個非常簡單的問題,需要把SQL Server數(shù)據(jù)庫中保存的一段路徑地址取出其文件名,但SQL Server又沒有現(xiàn)成的方法,最后在網(wǎng)上找到這樣的一個方法,原理是先將字符串反轉(zhuǎn),取出第一個/的位置,從頭進行截取后再次反轉(zhuǎn)
sql語句
reverse(substring(reverse(Path),1,charindex('/',reverse(Path)) - 1))
SQL如何取出一個字符串中最后一個特殊字符右邊的字符,例如:10*20*300,怎樣得到300?
使用reverse配合charindex來實現(xiàn)。
reverse是把字符串倒置,然后通過charindex來獲取倒置之后第一個*的位置,然后使用substring函數(shù)進行字符串截取,截取后再使用reverse倒置回來即可。
以下為例子
declare @str varchar(20)
set @str = '10*20*300'
select reverse(substring(reverse(@str),1,charindex('*',reverse(@str)) - 1))
結(jié)果是300
以上是SQLSERVER的語法。
ORACLE數(shù)據(jù)庫也有REVERSE函數(shù),不過SUBSTRING要改成SUBSTR,CHARINDEX函數(shù)要改成INSTR函數(shù)
SELECT reverse(substr(reverse('10*20*300'),1,INSTR(reverse('10*20*300'),'*') - 1)) FROM DUAL;
結(jié)果是300
復(fù)制代碼 代碼如下:
reverse(substring(reverse(Path),1,charindex('/',reverse(Path)) - 1))
SQL如何取出一個字符串中最后一個特殊字符右邊的字符,例如:10*20*300,怎樣得到300?
使用reverse配合charindex來實現(xiàn)。
reverse是把字符串倒置,然后通過charindex來獲取倒置之后第一個*的位置,然后使用substring函數(shù)進行字符串截取,截取后再使用reverse倒置回來即可。
以下為例子
declare @str varchar(20)
set @str = '10*20*300'
select reverse(substring(reverse(@str),1,charindex('*',reverse(@str)) - 1))
結(jié)果是300
以上是SQLSERVER的語法。
ORACLE數(shù)據(jù)庫也有REVERSE函數(shù),不過SUBSTRING要改成SUBSTR,CHARINDEX函數(shù)要改成INSTR函數(shù)
SELECT reverse(substr(reverse('10*20*300'),1,INSTR(reverse('10*20*300'),'*') - 1)) FROM DUAL;
結(jié)果是300
相關(guān)文章
SQL語言查詢基礎(chǔ):連接查詢 聯(lián)合查詢 代碼
SQL語言查詢基礎(chǔ):連接查詢 聯(lián)合查詢 代碼...2007-03-03sql server 2012 備份集中的數(shù)據(jù)庫備份與現(xiàn)有的xxx數(shù)據(jù)庫不同
這篇文章主要介紹了sql server 2012 備份集中的數(shù)據(jù)庫備份與現(xiàn)有的xxx數(shù)據(jù)庫不同,需要的朋友可以參考下2016-07-07巧妙利用PARTITION分組排名遞增特性解決合并連續(xù)相同數(shù)據(jù)行
這篇文章主要介紹了巧妙利用PARTITION分組排名遞增特性解決合并連續(xù)相同數(shù)據(jù)行,需要的朋友可以參考下2014-08-08SQL Server使用游標(biāo)處理Tempdb究極競爭-DBA問題-程序員必知
這篇文章主要介紹了SQL Server使用游標(biāo)處理Tempdb究極競爭-DBA問題-程序員必知的相關(guān)資料,需要的朋友可以參考下2015-11-11