【函式】translate解惑
1、語法
TRANSLATE(expr, from_string, to_string)
2、功能
expr中的字串進行替換,替換的規則是:from_string與to_string一一對應進行替換,如果沒有對應上,那麼將expr中的相應字元將刪除。
文字描述不好理解,我們直接上例子。
3、例題
將字串'123a1b2c3456'中所有的數字刪除,保留英文字元,即處理後的字串應為'abc'
SYS@ORA11GR2>select translate('123a1b2c3456','x0123456789','x') as string from dual;
STRING
----------
abc
SYS@ORA11GR2>
4、解釋例題
按照
translate函式中from_string與to_string一一對應進行替換規則,我們可以這樣理解
(注:"=>"表示替換)
x=>x,
0=>null(也可以理解為將字串中所有出現的0刪除)
1=>null
2=>null
3=>null
4=>null
5=>null
6=>null
7=>null
8=>null
9=>null
這一串替換下來,把字串'123a1b2c3456'中的所有數字就都刪除了,以達到去除字串中數字的效果。
5、疑問
疑問出現了,今天一個朋友問我,from_string和to_string引數中的x略顯多餘,直接把x去掉,改為('123a1b2c3456','0123456789','')不就可以了嗎?
我印象中這樣一定是不行的,具體是為什麼,我忘記了,測試了一下,確實應驗了,返回的是null,那麼究其原因何在呢?
只能去官方文件中一查究竟,看看有沒有相關的介紹,果然有,官方解釋如下:
“You cannot use an empty string for to_string to remove all characters in from_string from the return value. Oracle Database interprets the empty string as null, and if this function has a null argument, then it returns null. To remove all characters in from_string, concatenate another character to the beginning of from_string and specify this character as the to_string. For example, TRANSLATE(expr, 'x0123456789', 'x') removes all digits from expr.”
6、小結
也就是說to_string這個引數是不被允許的,如果為空的話,那麼這個函式就直接返回null。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2126006/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- translate函式函式
- Translate函式用法函式
- oracle TRANSLATE函式詳解Oracle函式
- Oracle 函式 Translate 的用法Oracle函式
- Oracle 中 replace函式和translate函式比較Oracle函式
- translate函式的靈活用法函式
- 【函式】oracle translate() 詳解+例項函式Oracle
- js解惑-函式執行順序JS函式
- Serverless 解惑——函式計算如何安裝字型Server函式
- Oracle translate函式和正則的幾個應用Oracle函式
- 【Hive】字串替換函式translate和regexp_replaceHive字串函式
- [C#解惑] #1 在建構函式內呼叫虛方法C#函式
- C++初學解惑(4)——建構函式(上) (轉)C++函式
- Serverless 解惑——函式計算如何訪問 Mongo 資料庫Server函式Go資料庫
- Serverless 解惑——函式計算如何訪問 Redis 資料庫Server函式Redis資料庫
- Serverless 解惑——函式計算如何訪問 MySQL 資料庫Server函式MySql資料庫
- Serverless 解惑——函式計算如何訪問 PostgreSQL 資料庫Server函式SQL資料庫
- Serverless 解惑——函式計算如何訪問 SQL Server 資料庫Server函式SQL資料庫
- 嬰兒的出生為你解惑建構函式和構造程式碼塊函式
- JavaScript進階教程(4)-函式內this指向解惑call(),apply(),bind()的區別JavaScript函式APP
- canvas translate()Canvas
- canvas translateCanvas
- 詳解translate
- QApplication::translateAPP
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- HTML translate 屬性HTML
- translate-your-site
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- 【函式式 Swift】函式式思想函式Swift
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- 【函式】Oracle函式系列(2)--數學函式及日期函式函式Oracle
- Python 擴充之特殊函式(lambda 函式,map 函式,filter 函式,reduce 函式)Python函式Filter
- 第7章 IF函式 COUNTIF函式 SUMIF函式函式
- 字元函式、數字函式和日期函式字元函式
- 【函式】Oracle EXTRACT()函式與to_char() 函式函式Oracle
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- 【函式】ORACLE函式大全函式Oracle
- (譯) 函式式 JS #2: 函式!函式JS