濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > Oracle中字符串截取常用方法總結(jié)【推薦】

Oracle中字符串截取常用方法總結(jié)【推薦】

熱門標(biāo)簽:貴陽電話外呼系統(tǒng)哪家好 安陽外呼系統(tǒng)免費(fèi) 圖像地圖標(biāo)注 呼倫貝爾智能手機(jī)地圖標(biāo)注 海南400電話哪里辦理 濟(jì)南地圖標(biāo)注公司 分布式呼叫中心 南寧人工智能電銷機(jī)器人費(fèi)用 400電話是不是免費(fèi)申請(qǐng)

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

語法:SUBSTR(string,start, [length])

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

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

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

示例:

SELECT SUBSTR('Hello SQL!', 1) FROM dual 

 --截取所有字符串,返回'Hello SQL!'

SELECT SUBSTR('Hello SQL!', 2) FROM dual 

 --從第2個(gè)字符開始,截取到末尾。返回'ello SQL!'

SELECT SUBSTR('Hello SQL!', -4) FROM dual  

--從倒數(shù)第4個(gè)字符開始,截取到末尾。返回'SQL!'

SELECT SUBSTR('Hello SQL!', 3, 6) FROM dual 

--從第3個(gè)字符開始,截取6個(gè)字符。返回'llo SQ'

SELECT SUBSTR('Hello SQL!', -4, 3) FROM dual

--從倒數(shù)第4個(gè)字符開始,截取3個(gè)字符。返回'SQL'

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

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

string:表示源字符串。

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

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

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

示例:

--表示從源字符串'city_company_staff'中第1個(gè)字符開始查找子字符串'_'第1次出現(xiàn)的位置

SELECT INSTR('city_company_staff', '_') FROM dual 

--返回5

--表示從源字符串'city_company_staff'中第5個(gè)字符開始查找子字符串'_'第1次出現(xiàn)的位置

SELECT INSTR('city_company_staff', '_', 5) FROM dual  

--返回5

--表示從源字符串'city_company_staff'中第5個(gè)字符開始查找子字符串'_'第1次出現(xiàn)的位置

SELECT INSTR('city_company_staff', '_', 5, 1) FROM dual  

--返回5

--表示從源字符串'city_company_staff'中第3個(gè)字符開始查找子字符串'_'第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ù)無法實(shí)現(xiàn)需求,需配合instr函數(shù)定位到字符'_'的位置,然后使用substr函數(shù)進(jìn)行截取。詳細(xì)見下面例子。

表數(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 CITYFROM TABLE_CODE_TEST

結(jié)果:

 BJ

SH

HRB

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

那為什么減1呢?

是因?yàn)镮NSTR (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 COMPANYFROM TABLE_CODE_TEST

結(jié)果:

 COMPANY

BOKE

WM

解釋:截取源字符串,從(第一個(gè)'_'出現(xiàn)位置+1)開始,截取個(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_NAMEFROM TABLE_CODE_TEST

結(jié)果:

 LY

LWZ

OYZY

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

總結(jié)

以上所述是小編給大家介紹的Oracle中字符串截取常用方法總結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • Oracle 隨機(jī)數(shù)
  • Oracle截取字符串去掉字段末尾指定長(zhǎng)度的字符
  • ORACLE 超長(zhǎng)字符串問題的解決辦法
  • oracle使用instr或like方法判斷是否包含字符串
  • 深入分析C#連接Oracle數(shù)據(jù)庫的連接字符串詳解
  • Oracle中字符串連接的實(shí)現(xiàn)方法
  • Oracle生成隨機(jī)數(shù)字、字符串、日期、驗(yàn)證碼及 UUID的方法

標(biāo)簽:許昌 合肥 涼山 郴州 焦作 南充 滁州 遼源

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle中字符串截取常用方法總結(jié)【推薦】》,本文關(guān)鍵詞  Oracle,中,字符串,截取,常用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle中字符串截取常用方法總結(jié)【推薦】》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle中字符串截取常用方法總結(jié)【推薦】的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    新干县| 巢湖市| 古田县| 澄江县| 搜索| 壶关县| 石楼县| 全椒县| 会东县| 红安县| 丰县| 吴堡县| 涟源市| 深州市| 邹平县| 北辰区| 察雅县| 东乡县| 冷水江市| 桦川县| 崇州市| 中西区| 和龙市| 利川市| 黄平县| 滦南县| 明星| 盐城市| 卢氏县| 瑞昌市| 仙居县| 普安县| 阳城县| 阿图什市| 内黄县| 日土县| 古蔺县| 胶南市| 华坪县| 班玛县| 龙游县|