總結一些oracle中常用的單記錄函式。
1.0 nvl()
作用:從兩個表示式返回乙個非null值
用法:nvl(表示式1, 表示式2)
如果表示式1的結果不為null,返回表示式1的結果;如果表示式1的結果為null,返回表示式2的結果。
引申:表示式1的結果為null,返回表示式2的結果,而表示式2的結果為null,則最終返回null,可以得出乙個偽結論是「如果表示式1和表示式2的結果都為null,則返回null」。
nvl(123, 456) // 結果是123
1.1 nvl2()
作用:從三個表示式中返回乙個
用法:nvl(表示式1, 表示式2, 表示式3)
如果表示式1的結果是null,返回表示式3的結果;如果表示式1的結果不為null,返回表示式2的結果。
nvl2(null, 123, 456) //結果是456
nvl2(
123, 456, 789) // 結果是456
2.0 lower()
作用:將字串中的大寫字母轉為小寫
用法:lower(字串)
3.0 upper()
作用:將字串中的小寫字母轉為大寫
用法:upper(字串)
4.0 sys_guid()
作用:以16位raw型別值形式返回乙個全域性唯一的識別符號
用法:sys_guid()
常用作生成id。
select sys_guid() id from dual //直接使用,結果是亂碼
select rawtohex(sys_guid()) id from dual //
結果是數字和大寫字母組合的字串
select
lower(sys_guid()) id from dual // 轉成小寫
5.0 length()
作用:按字元取字串長度
用法:length(字串)
1個中文、英文本母、數字、中文符號、英文符號、全形符號、空格都算1個字元。
length('你好嗎') // 結果是3
5.1 lengthb()
作用:按位元組取字串長度
用法:length(字串)
1個中文、全形符號是2個位元組;1個英文本母、數字、英文符號、空格是1個位元組。
lengthb('你好嗎') // 結果是6
oracle中函式後帶"b"的都是以位元組為單位的。
6.0 trim()
作用:刪除兩邊空格或指定字元
用法:trim(刪除方向 要刪除的指定字元 from 源字串)
刪除方向和要刪除的指定字元為可選引數,當要使用它們時,from關鍵字必須。
刪除方向有三種:leading(從字串的頭開始刪除)、trailing(從字串的尾部開始刪除)、both(從字串兩邊刪除)。不指定刪除方向,則預設是both。
要刪除的指定字元只能是乙個字元,不能是字串。不指定要刪除的指定字元,則預設是空格。
trim()只能刪除半形空格。
trim(both '1'from
'12121
') // 結果是212
6.1 ltrim()
作用: 刪除左邊空格或指定字串中的所有字元
用法:ltrim(源字串, 要刪除的指定字串)
要刪除的指定字串為可選引數,不指定預設是空格。
trim('21233213
', '
12') // 結果是33213。刪掉了左邊所有的1和2
6.2 rtrim()
作用:刪除右邊空格或指定字串中的所有字元
用法:rtrim(源字串, 要刪除的指定字串)
要刪除的指定字串為可選引數,不指定預設是空格。
trim('2332131
', '
13') // 結果是2332。刪掉了右邊所有的1和3
7.0 replace()
作用:替換字串中的指定字串(全部替換)
用法:replace(源字串, 目標字串, 替換的字串)
替換的字串為可選引數,不指定預設是去除。
replace('12121
', '
1') // 結果是22,1全部被替換了
8.0 lpad()
作用:按位元組從左邊對字串使用指定的字元進行填充
用法:lpad(源字串, 填充後的字串長度, 填充的字串)
填充的字串為可選引數,不指定預設為空格。
如果填充後的字串長度比源字串長度要短,函式會將源字串從左到右擷取成符合填充後的字串長度的字串。
lpad('如果填充的字串長度 > 待補長度,填充的字串也會被擷取後再進行填充,相反則會不斷重複填充至待補長度為0。
lpad('
', 10, '
1239.0 rpad()
作用:按位元組從右邊對字串使用指定的字元進行填充
用法:rpad(源字串, 填充後的字串長度, 填充的字串)
填充的字串為可選引數,不指定預設為空格。
如果填充後的字串長度比源字串長度要短,函式會將源字串從左到右擷取成符合填充後的字串長度的字串。
rpad('
如果填充的字串長度 > 待補長度,填充的字串也會被擷取後再進行填充,相反則會不斷重複填充至待補長度為0。
rpad('
', 10, '
12310.0 substr()
作用:擷取指定長度的字串
用法:substr(源字串, 擷取開始位置, 擷取長度)
擷取長度為可選引數。擷取開始位置為正數時,不指定預設擷取到末尾。
當擷取開始位置是0或1的時候,都是從第一位開始擷取(區別於下標,位置從1開始計算)。
當擷取開始位置為負數時,反向擷取。從最後一位開始擷取相應的|擷取開始位置|長度的字串,當且僅當|擷取開始位置| > 擷取長度時擷取長度才會生效。
substr('
abcdefgh
', -
5, 6) // 結果是efghi,相當於substr('
abcdefgh
', -
5, 5)
substr('abcdefgh
', -
5, 2) // 結果是gh
11.0 instr()
作用:在字串中檢索指定字串,返回檢索匹配起始位置
用法:instr(源字串, 目標字串, 檢索起始位置, 匹配第幾次出現)
檢索起始位置和匹配第幾次出現為可選引數。不指定預設都是1。
檢索起始位置為負數時,反向檢索,但是返回的匹配位置仍然是正向順序。
instr('abcdefgh
', '
ef', -
2) // 結果是5
匹配第幾次出現指目標字串在字串中第幾次出現。
instr('abefcdefgh
', '
ef', 2, 2) // 結果是7,檢索第二次出現的ef
檢索不到,返回0,因此可以用 > 0 來表示匹配成功。作用和 like '%字串%' 相當。
"我本來是個很黯淡的人,是你給了我漫天星光。"
記錄一些oracle命令
1 查詢哪些使用者擁有dba許可權 select from dba role privs where granted role dba 2 查詢當前使用者所擁有的系統許可權 select from user sys privs 3 查詢當前使用者被授予的角色 select from user rol...
一些常用的演算法記錄
1 插入演算法 public static void main string args arr j 1 temp 2 歸併排序 public static void main string args date time1 new date long a1 time1.gettime for int ...
一些常用方法的記錄
1.建立臨時目錄 建立臨時目錄 try catch ioexception e 結果 2.正規表示式的組 測試正規表示式 string slippingwindowpointoprand s s s string slippingwindowpointcollectoprand slippingwi...