日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle translate 函数的用法, 以及和replace的区别

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle translate 函数的用法, 以及和replace的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

translate 是用來替換字符的函數

語法:

???????? ?translate(char, from_str,to_str)

?

其中,char是待處理的字符串.

?????????????? from_str是按順序排列若干個要被替換的字符集合,注意是字符集合而不是字符串。

?????????????? to_str 是按順序對應from_str要被替換成的字符集合。

?

例如:

????????????? translate('abcd','ab','AB')?

? 執行上面語句后, 'abcd'中的'a' 'A'替換,? 'b''B'替換。所以返回"ABcd"

?

這樣看上去跟replace函數很類似。

?

但是,在

?????????? replace('abcd','ab','AB') 語句中,?? 是把'abcd'中的 'ab' 整個字符串替換成'AB'? 應該能看出與上面translate的區別了吧。

舉個例子

???????? ?translate('acbd','ab','AB')? 會返回"AcBd" ,因為'a' 'A'替換,? 'b''B'替換嘛,替換是每1個字符單獨處理的。

????????? replace('acbd','ab','AB')? 則返回"acbd”, 因為字符串'ab'找不到啊, 所以沒有做到替換處理。

?

下面寫一些translate的一些要注意的特性。

???????

1.

translate('abcd','abc','A') 中,??? 字符a會被'A'替換, bc則沒有指定替換成什么,oracle會默認替換成null。所以返回'Ad'.

?

2.

translate('abcd','abc','') 中, A被替換的字符也被省略掉了,是不是因為abc 3 字符都被替換成null,所以返回d呢?

答案是錯的, 如果to_strblank('')或者null,則所有字符都會替換成null, 所以這個表達式返回null.

?

?

3.translate有許多特別的用途,

例如 我想將1個字符串內的數字全部去掉,則可以用
???????? ?

translate(str,'a1234567890','a')

這樣的話字符串的a(如果存在的話)會被替換成自己a,而其他數字會替換成null,注意是null而不是空格啊。

或者

translate(str,' 1234567890',' ')

用空格來代替上面的'a'也ok,注意from_str和to_str都是以空格開頭啊。


而不能用

translate(str,'1234567890','') ? 參考上面的特性2,會返回null的啊。

?

總結

以上是生活随笔為你收集整理的Oracle translate 函数的用法, 以及和replace的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。