zoukankan      html  css  js  c++  java
  • 【函数】oracle translate() 详解+实例

     

    一、语法: 
    TRANSLATE(string,from_str,to_str)


    二、目的 
    返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。


    三、允许使用的位置 
    过程性语句和SQL语句。


    四、示例 
    Sql代码

    1. SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual; 
    2. TRANSLATE ( 
    3. -------------- 
    4. 123456ghij 
    5. 
    6. SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual; 
    7. TRANSL 
    8. ---------- 
    9. 123456



    语法:TRANSLATE(expr,from,to)

    expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。


    举例:

    select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代)

    select translate('abcbbaadef','bad','#@') from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走)

    因此:结果依次为:@#c##@@def 和@#c##@@ef


    语法:TRANSLATE(expr,from,to)

    expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。


    举例:

    select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代)

    select translate('abcbbaadef','bad','#@') from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走)

    因此:结果依次为:@#c##@@def 和@#c##@@ef

    示例如下:

    示例一:将数字转换为9,其他的大写字母转换为X,然后返回。

    SELECT TRANSLATE('2KRW229',


                '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',

                               '9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') "ic"

                  FROM DUAL

    示例二:将数字保留,将其他的大写字母移除。

    SELECT TRANSLATE('2KRW229','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','0123456789') "Translate example" FROM DUAL

    示例三:示例证明是按照字符来处理,不是按照字节来处理,如果to_string的字符数比from_string多的话,多出的字符数似乎没有什么用处,也不会引发异常。

    SELECT TRANSLATE('我是中国人,我爱中国', '中国', 'China') "Translate              

     example"

    FROM DUAL

    示例四:下面的示例证明,如果from_string的字符数大于to_string,那么多出的字符会被移除,也就是ina三个字符会从char参数中移除,当然区分大小写啦。

    SELECT TRANSLATE('I am Chinese, I love China', 'China', '中国') "Translate

    example"

    FROM DUAL

    示例五:以下示例证明,如果第二个参数为空字符串,整个返回null。

    SELECT TRANSLATE('2KRW229',              '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', '') "ic"    FROM DUAL

      

    示例六:最后一个字,其余星号代替:

    SELECT TRANSLATE('我在上海',substr('我在上海',1,length('我在上海') - 1),rpad('*',length('我在上海'),'*')) "ic"FROM DUAL;

  • 相关阅读:
    Android中Context具体解释 ---- 你所不知道的Context
    JDK6、Oracle11g、Weblogic10 For Linux64Bit安装部署说明
    matplotlib 可视化 —— 定制 matplotlib
    matplotlib 可视化 —— 移动坐标轴(中心位置)
    matplotlib 可视化 —— 移动坐标轴(中心位置)
    matplotlib 可视化 —— 定制画布风格 Customizing plots with style sheets(plt.style)
    matplotlib 可视化 —— 定制画布风格 Customizing plots with style sheets(plt.style)
    指数函数的研究
    指数函数的研究
    指数分布的研究
  • 原文地址:https://www.cnblogs.com/AaronLi/p/4866055.html
Copyright © 2011-2022 走看看