SQL Server中通過(guò)reverse取某個(gè)最后一次出現(xiàn)的符號(hào)后面的內(nèi)容(字符串反轉(zhuǎn))
更新時(shí)間:2012年07月09日 01:35:45 作者:
昨天在項(xiàng)目中遇到了一個(gè)非常簡(jiǎn)單的問(wèn)題,需要把SQL Server數(shù)據(jù)庫(kù)中保存的一段路徑地址取出其文件名,但SQL Server又沒(méi)有現(xiàn)成的方法,最后在網(wǎng)上找到這樣的一個(gè)方法,原理是先將字符串反轉(zhuǎn),取出第一個(gè)/的位置,從頭進(jìn)行截取后再次反轉(zhuǎn)
sql語(yǔ)句
reverse(substring(reverse(Path),1,charindex('/',reverse(Path)) - 1))
SQL如何取出一個(gè)字符串中最后一個(gè)特殊字符右邊的字符,例如:10*20*300,怎樣得到300?
使用reverse配合charindex來(lái)實(shí)現(xiàn)。
reverse是把字符串倒置,然后通過(guò)charindex來(lái)獲取倒置之后第一個(gè)*的位置,然后使用substring函數(shù)進(jìn)行字符串截取,截取后再使用reverse倒置回來(lái)即可。
以下為例子
declare @str varchar(20)
set @str = '10*20*300'
select reverse(substring(reverse(@str),1,charindex('*',reverse(@str)) - 1))
結(jié)果是300
以上是SQLSERVER的語(yǔ)法。
ORACLE數(shù)據(jù)庫(kù)也有REVERSE函數(shù),不過(guò)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如何取出一個(gè)字符串中最后一個(gè)特殊字符右邊的字符,例如:10*20*300,怎樣得到300?
使用reverse配合charindex來(lái)實(shí)現(xiàn)。
reverse是把字符串倒置,然后通過(guò)charindex來(lái)獲取倒置之后第一個(gè)*的位置,然后使用substring函數(shù)進(jìn)行字符串截取,截取后再使用reverse倒置回來(lái)即可。
以下為例子
declare @str varchar(20)
set @str = '10*20*300'
select reverse(substring(reverse(@str),1,charindex('*',reverse(@str)) - 1))
結(jié)果是300
以上是SQLSERVER的語(yǔ)法。
ORACLE數(shù)據(jù)庫(kù)也有REVERSE函數(shù),不過(guò)SUBSTRING要改成SUBSTR,CHARINDEX函數(shù)要改成INSTR函數(shù)
SELECT reverse(substr(reverse('10*20*300'),1,INSTR(reverse('10*20*300'),'*') - 1)) FROM DUAL;
結(jié)果是300
您可能感興趣的文章:
- javascript 不用reverse實(shí)現(xiàn)字符串反轉(zhuǎn)的代碼
- 使用C語(yǔ)言遞歸與非遞歸實(shí)現(xiàn)字符串反轉(zhuǎn)函數(shù)char *reverse(char *str)的方法
- javascript 實(shí)現(xiàn)字符串反轉(zhuǎn)的三種方法
- java字符串反轉(zhuǎn)示例分享
- 一個(gè)字符串反轉(zhuǎn)函數(shù)可實(shí)現(xiàn)字符串倒序
- Shell中實(shí)現(xiàn)字符串反轉(zhuǎn)方法分享
- php實(shí)現(xiàn)字符串反轉(zhuǎn)輸出的方法
- 字符串反轉(zhuǎn)_JavaScript
相關(guān)文章
SQL語(yǔ)言查詢基礎(chǔ):連接查詢 聯(lián)合查詢 代碼
SQL語(yǔ)言查詢基礎(chǔ):連接查詢 聯(lián)合查詢 代碼...2007-03-03sql server 2012 備份集中的數(shù)據(jù)庫(kù)備份與現(xiàn)有的xxx數(shù)據(jù)庫(kù)不同
這篇文章主要介紹了sql server 2012 備份集中的數(shù)據(jù)庫(kù)備份與現(xiàn)有的xxx數(shù)據(jù)庫(kù)不同,需要的朋友可以參考下2016-07-07巧妙利用PARTITION分組排名遞增特性解決合并連續(xù)相同數(shù)據(jù)行
這篇文章主要介紹了巧妙利用PARTITION分組排名遞增特性解決合并連續(xù)相同數(shù)據(jù)行,需要的朋友可以參考下2014-08-08SQL Server使用游標(biāo)處理Tempdb究極競(jìng)爭(zhēng)-DBA問(wèn)題-程序員必知
這篇文章主要介紹了SQL Server使用游標(biāo)處理Tempdb究極競(jìng)爭(zhēng)-DBA問(wèn)題-程序員必知的相關(guān)資料,需要的朋友可以參考下2015-11-11重命名SQLServer數(shù)據(jù)庫(kù)的方法
本文講解重命名SQLServer 數(shù)據(jù)庫(kù),包括物理文件名、邏輯文件名的改名2012-07-07SQL開(kāi)窗函數(shù)的具體實(shí)現(xiàn)詳解
這篇文章主要介紹了SQL開(kāi)窗函數(shù)的具體實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07