oracle字串常用操作
阿新 • • 發佈:2018-11-26
oracle操作字串:拼接、替換、擷取、查詢、長度、判斷
1、拼接字串
1)可以使用“||”來拼接字串
select '拼接'||'字串' as str from dual
2)通過concat()函式實現
select concat('拼接', '字串') as str from dual
注:oracle的concat函式只支援兩個引數的方法,即只能拼接兩個引數,如要拼接多個引數則巢狀使用concat可實現,如:
select concat(concat('拼接', '多個'), '字串') from dual
2、擷取字串
SUBSTR(string,start_position,[length]) 求子字串,返回字串
解釋:string 源字串
start_position 開始位置(從0開始)
length 可選項,子字串的個數
select substr(to_char(sysdate, 'yyyy-mm-dd HH:mi:ss'), 12, 5) as time from dual
substr("ABCDEFG", 0); //返回:ABCDEFG,擷取所有字元 substr("ABCDEFG", 2); //返回:CDEFG,擷取從C開始之後所有字元 substr("ABCDEFG", 0, 3); //返回:ABC,擷取從A開始3個字元 substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100雖然超出預處理的字串最長度,但不會影響返回結果,系統按預處理字串最大數量返回。 substr("ABCDEFG", -3); //返回:EFG,注意引數-3,為負值時表示從尾部開始算起,字串排列位置不變。
字串 "AAA-BBB" 擷取"AAA" "BBB"
select substr('AAA-BBB',1,instr('AAA-BBB','-',-1)-1) 值 from dual;
select substr('AAA-BBB',instr('AAA-BBB','-',-1)+1) 值 from dual;
3、查詢字串
INSTR(string,subString,position,ocurrence)查詢字串位置
解釋:string:源字串
subString:要查詢的子字串
position:查詢的開始位置
ocurrence:源字串中第幾次出現的子字串
select INSTR('CORPORATE FLOOR','OR', 3, 2) as loc from dual
4、替換字串
replace(strSource, str1, str2) 將strSource中的str1替換成str2
解析:strSource:源字串
str1: 要替換的字串
str2: 替換後的字串
select '替換字串' as oldStr, replace('替換字串', '替換', '修改') as newStr from dual
5、長度
length(nvl(欄位,''))=1
6、判斷
SELECT SBXH, SFZJHM, case when length(nvl(XM,''))=1 then XM when length(nvl(XM,''))=2 then substr(XM, 0, 1)||'*' when length(nvl(XM,''))=3 then substr(XM, 0, 1)||'**' when length(nvl(XM,''))=4 then substr(XM, 0, 1)||'***' else substr(XM, 0, 1)||'****' end XM, DJXH, SDNF, DWMC, YNSE FROM ZHZS_SEWSR T WHERE YNSE > 120000.000000 AND DWMC IS NOT NULL AND SFZJHM LIKE '36%' ORDER BY YNSE DESC
nvl()函式是oracle/plpgsql中的一個函式,格式為:nvl(string1, replace_with)
功能:如果string1 位null,那麼nvl()函式返回replace_with的值,否則返回sting1的值。