欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle數(shù)據(jù)庫(kù)中字符串截取最全方法總結(jié)

 更新時(shí)間:2024年03月29日 09:08:26   作者:GitHub質(zhì)檢員  
Oracle提供了多種截取字符串的操作方法,可以根據(jù)具體需求選擇合適的方法進(jìn)行操作,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)中字符串截取的最全方法,需要的朋友可以參考下

substr 函數(shù):截取字符串

語(yǔ)法SUBSTR(string,start, [length])

string:表示源字符串,即要截取的字符串。

start:開(kāi)始位置,從1開(kāi)始查找。如果start是負(fù)數(shù),則從string字符串末尾開(kāi)始算起**。**

length:可選項(xiàng),表示截取字符串長(zhǎng)度。

示例

SELECT SUBSTR('Hello SQL!', 1) FROM dual     --截取所有字符串,返回'Hello SQL!'
SELECT SUBSTR('Hello SQL!', 2) FROM dual     --從第2個(gè)字符開(kāi)始,截取到末尾。返回'ello SQL!'
SELECT SUBSTR('Hello SQL!', -4) FROM dual    --從倒數(shù)第4個(gè)字符開(kāi)始,截取到末尾。返回'SQL!'
SELECT SUBSTR('Hello SQL!', 3, 6) FROM dual  --從第3個(gè)字符開(kāi)始,截取6個(gè)字符。返回'llo SQ'
SELECT SUBSTR('Hello SQL!', -4, 3) FROM dual --從倒數(shù)第4個(gè)字符開(kāi)始,截取3個(gè)字符。返回'SQL'

instr 函數(shù):返回子字符串在源字符串中的位置

語(yǔ)法INSTR(string,child_string,[start],[show_time])

string:表示源字符串。

child_string:子字符串,即要查找的字符串。

start:可選項(xiàng),開(kāi)始位置,默認(rèn)從1開(kāi)始。如果為負(fù)數(shù),則從右向左檢索。

show_time:可選項(xiàng),表示子字符串第幾次出現(xiàn)在源字符串當(dāng)中,默認(rèn)第1次,負(fù)數(shù)則報(bào)錯(cuò)。

示例

--表示從源字符串'city_company_staff'中第1個(gè)字符開(kāi)始查找子字符串'_'第1次出現(xiàn)的位置
SELECT INSTR('city_company_staff', '_') FROM dual    --返回5

--表示從源字符串'city_company_staff'中第5個(gè)字符開(kāi)始查找子字符串'_'第1次出現(xiàn)的位置
SELECT INSTR('city_company_staff', '_', 5) FROM dual    --返回5

--表示從源字符串'city_company_staff'中第5個(gè)字符開(kāi)始查找子字符串'_'第1次出現(xiàn)的位置
SELECT INSTR('city_company_staff', '_', 5, 1) FROM dual    --返回5

--表示從源字符串'city_company_staff'中第3個(gè)字符開(kāi)始查找子字符串'_'第2次出現(xiàn)的位置
SELECT INSTR('city_company_staff', '_', 3, 2) FROM dual    --返回13

--start參數(shù)為-1,從右向左檢索,查找'_'字符串在源字符串中第1次出現(xiàn)的位置
SELECT INSTR('city_company_staff', '_', -1, 1) FROM dual    --返回13

--start參數(shù)為-6,從右向左檢索,查找'_'字符串在源字符串中第2次出現(xiàn)的位置
SELECT INSTR('city_company_staff', '_', -6, 2) FROM dual    --返回5

substr 函數(shù)結(jié)合 instr 函數(shù)截取字符串

現(xiàn)有需求:數(shù)據(jù)查詢處理需要對(duì)code進(jìn)行"拆分"

code命名規(guī)則類似:城市_所屬公司_員工職位_員工姓名

其中,城市、公司、職位、姓民字符串長(zhǎng)度不固定,由于字符串長(zhǎng)度不固定,只使用substr函數(shù)無(wú)法實(shí)現(xiàn)需求,需配合instr函數(shù)定位到字符’_'的位置,然后使用substr函數(shù)進(jìn)行截取。詳細(xì)見(jiàn)下面例子。

表數(shù)據(jù)如下:

SOURCE_CODE

BJ_BAIDU_CEO_LY

SH_BOKE_MANAGER_LWX

HRB_WM_CASHIER_OYZY

獲取城市

SELECT
	SUBSTR (SOURCE_CODE, 1, INSTR (SOURCE_CODE, '_', 1, 1) - 1) AS CITY
FROM
	TABLE_CODE_TEST

結(jié)果

解釋:此處截取源字符串SOURCE_CODE,從第1個(gè)字符開(kāi)始,由于代表城市的code長(zhǎng)度不固定,我們無(wú)法確定截取幾個(gè)字符,所以使用instr函數(shù)判斷第一個(gè)’_'字符的位置,進(jìn)而確定每個(gè)SOURCE_CODE截取幾個(gè)字符串。

那為什么減1呢

是因?yàn)?*INSTR (SOURCE_CODE, ‘_’, 1, 1)**獲取的是源字符串中’_'字符第一次出現(xiàn)的位置,再減1就得出了CITY字符個(gè)數(shù)。

獲取公司:

SELECT
	SUBSTR (
		SOURCE_CODE, 
		INSTR (SOURCE_CODE, '_', 1, 1) + 1, 
		INSTR (SOURCE_CODE, '_', 1, 2) - INSTR (SOURCE_CODE, '_', 1, 1)-1
	) AS COMPANY
FROM
	TABLE_CODE_TEST

結(jié)果:

解釋:截取源字符串,從(第一個(gè)’_'出現(xiàn)位置+1)開(kāi)始,截取個(gè)數(shù)為:第2個(gè)’_‘出現(xiàn)位置減去第1個(gè)’_‘出現(xiàn)位置,此時(shí)還多了一個(gè)下劃線’_',再減去1即可得到代表公司字符串。

獲取姓名:

SELECT
	SUBSTR (SOURCE_CODE, INSTR (SOURCE_CODE, '_', 1, 3) + 1) AS STF_NAME
FROM
	TABLE_CODE_TEST

結(jié)果:

解釋:截取源字符串,從('_'第3次出現(xiàn)位置+1)開(kāi)始截取,截取到末尾。

Oracle 字符串截取 從后向前截取方法

Oracle 字符串截取 從后向前截取方法 

  • NSTR:INSTR方法的格式為
    • INSTR(源字符串, 目標(biāo)字符串, 起始位置, 匹配序號(hào))
    • 默認(rèn)查找順序?yàn)閺淖蟮接?。?dāng)起始位置為負(fù)數(shù)的時(shí)候,從右邊開(kāi)始查找。
  • SUBSTR:取子字符串 取子字符串
  • SUBSTR(源字符串,起始位置,要取多少位)

從“起始位置”開(kāi)始,取“多少"個(gè)

select 'ZA01X-00000' as item_code
,instr('ZA01X-00000','-00000',-1,1) as position
,substr('ZA01X-00000',instr('ZA01X-00000','-00000',-1,1),length('ZA01X-00000')) as result
from dual
;

--
ITEM_CODE   POSITION    RESULT
ZA01X-00000 6           -00000
--
select substr('ZA01X-00000',-6) as result
from dual
;
--
RESULT
-00000
--

-- 實(shí)現(xiàn) 在ITEM CODE 中截取 ‘-00000' 字符串

總結(jié)

到此這篇關(guān)于Oracle數(shù)據(jù)庫(kù)中字符串截取最全方法的文章就介紹到這了,更多相關(guān)Oracle字符串截取方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于Oracle中SqlLoader的用法

    關(guān)于Oracle中SqlLoader的用法

    這篇文章主要介紹了關(guān)于Oracle中SqlLoader的用法,sqlldr是oracle的sql*loader工具,他可以把外部的文本格式數(shù)據(jù)導(dǎo)入到oracle的內(nèi)部表中,適用于不同數(shù)據(jù)庫(kù)之間的數(shù)據(jù)轉(zhuǎn)化遷移,需要的朋友可以參考下
    2023-07-07
  • oracle 12c創(chuàng)建可插拔數(shù)據(jù)庫(kù)(PDB)與用戶詳解

    oracle 12c創(chuàng)建可插拔數(shù)據(jù)庫(kù)(PDB)與用戶詳解

    Oracle12c 中,增加了可插接數(shù)據(jù)庫(kù)的概念,即PDB,允許一個(gè)數(shù)據(jù)庫(kù)容器(CDB)承載多個(gè)可插拔數(shù)據(jù)庫(kù)(PDB)。下面這篇文章主要給大家介紹了利用oracle 12c創(chuàng)建可插拔數(shù)據(jù)庫(kù)(PDB)與用戶的相關(guān)資料,文中介紹的很詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-02-02
  • oracle 更改數(shù)據(jù)庫(kù)名的方法

    oracle 更改數(shù)據(jù)庫(kù)名的方法

    這兩天一朋友問(wèn)如何更改數(shù)據(jù)庫(kù)名,于是做個(gè)測(cè)試,簡(jiǎn)單記錄下,以便說(shuō)明問(wèn)題。
    2009-10-10
  • Oracle表中已有數(shù)據(jù)修改字段類型方式

    Oracle表中已有數(shù)據(jù)修改字段類型方式

    這篇文章主要介紹了Oracle表中已有數(shù)據(jù)修改字段類型方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Orancle的SQL語(yǔ)句之多表查詢和組函數(shù)

    Orancle的SQL語(yǔ)句之多表查詢和組函數(shù)

    這篇文章主要介紹了Orancle的SQL語(yǔ)句之多表查詢和組函數(shù)的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • 限制ip訪問(wèn)Oracle數(shù)據(jù)庫(kù)的方法步驟

    限制ip訪問(wèn)Oracle數(shù)據(jù)庫(kù)的方法步驟

    這篇文章主要給大家介紹了關(guān)于限制ip訪問(wèn)Oracle數(shù)據(jù)庫(kù)的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Oracle數(shù)據(jù)庫(kù)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Oracle的數(shù)據(jù)字典技術(shù)簡(jiǎn)析

    Oracle的數(shù)據(jù)字典技術(shù)簡(jiǎn)析

    Oracle的數(shù)據(jù)字典技術(shù)簡(jiǎn)析...
    2007-03-03
  • Oracle查詢表空間大小及每個(gè)表所占空間的大小語(yǔ)句示例

    Oracle查詢表空間大小及每個(gè)表所占空間的大小語(yǔ)句示例

    Oracle表空間大小的查看方法應(yīng)該是我們都需要掌握的知識(shí),下面這篇文章主要給大家介紹了關(guān)于Oracle查詢表空間大小及每個(gè)表所占空間的大小語(yǔ)句的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Oracle 11G數(shù)據(jù)庫(kù)審計(jì)監(jiān)控設(shè)置指南

    Oracle 11G數(shù)據(jù)庫(kù)審計(jì)監(jiān)控設(shè)置指南

    Oracle 11G數(shù)據(jù)庫(kù)審計(jì)監(jiān)控涉及創(chuàng)建獨(dú)立表空間、查看審計(jì)信息、遷移表空間、開(kāi)啟審計(jì)及審計(jì)維護(hù)等步驟,合理規(guī)劃審計(jì)表空間有助于管理審計(jì)數(shù)據(jù),避免影響系統(tǒng)表空間,審計(jì)監(jiān)控涵蓋審計(jì)數(shù)據(jù)遷移、自動(dòng)清理、權(quán)限分配、查詢審計(jì)類型等方面,確保數(shù)據(jù)庫(kù)安全性能
    2024-10-10
  • 教你如何靜默安裝ORACLE

    教你如何靜默安裝ORACLE

    這篇文章主要介紹了教你如何靜默安裝ORACLE,需要的朋友可以參考下
    2014-08-08

最新評(píng)論