• Oracle---replace的基本用法


    参考文档:https://blog.csdn.net/bingguang1993/article/details/80592579/

    基本语法

    格式:

    REPLACE ( string_expression , string_pattern , string_replacement )
    

    参数说明:

    • string_expression 要搜索的字符串表达式。string_expression 可以是字符或二进制数据类型。
    • string_pattern 是要查找的子字符串。string_pattern 可以是字符或二进制数据类型,但不能是空字符串 ('')
    • string_replacement 替换字符串。string_replacement 可以是字符或二进制数据类型。

    简单来说:使用REPLACE(String,from_str,to_str) 可以将String中所有出现的from_str替换为to_str。

    验证测试

    创建表,并插入测试数据

    create table test4(
      address varchar2(20)
    );
    insert into test4 values ('黄花路X号X房'),(''),('广州塔X号'),(null),('上XXX海1hao');
    

    查询替换

    select replace(address,'X','Y') from test4
    

    上面会将address列中所有的X 替换成Y,同时也会把空字符串替换成NULL

    如果需要将NULL值替换成其他的话,如果是oracle数据库的话,可以使用NVL函数。只有在null值才会被替换,而空字符串不会

    select nvl(address,'meiyou') from test4
    

    当省略了replace的第三个参数,则会将匹配到所有的字符串替换成空字符串、并且如果原本数据是空字符串的话会转成NULL

    select replace(address,'X') from test4
    

    如果想要将空字符串替换成其他字符串的话,我们可以利用replace和nvl函数。

    select nvl(replace(address,''),'无') from test4
    

    更新替换

    update test4 set address= replace(address,'X','Y')
    

    上面会把address中匹配到所有的X替换成Y、空字符串替换成NULL

    总结

    • replace可以替换所有匹配到的字符串,但是无法替换像NULL、空字符串的问题
    • 空字符串替换成其他字符串的话,可以利用replace函数将空字符串转换为NULL,然后利用nvl进行null值的判断,然后如果为null值则转成其他的数据
  • 相关阅读:
    浅谈prufer编码
    数据结构训练之三
    博弈论训练之一
    动态规划训练之十三
    杂题训练之七
    奇技淫巧训练之八
    浅谈博弈论
    浅谈卡特兰数
    奇技淫巧训练之七
    浅谈概率期望的一些例题
  • 原文地址:https://www.cnblogs.com/it774274680/p/15221788.html
Copyright © 2020-2023  润新知