zoukankan      html  css  js  c++  java
  • sql

    1.定义

    (1)给出字符串表达式1,查找出子字符串表达式2。

    (2)用替换字符串表达式3去替换子字符串表达式2。

    2.语法
    REPLACE ( string_expression , string_pattern , string_replacement )

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

    返回类型
    如果其中的一个输入参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar。
    如果任何一个参数为 NULL,则返回 NULL。

    REPLACE(String,from_str,to_str) 即:将String中所有出现的from_str替换为to_str。

    3.例子

    字符串类型参数

    3.1 创建表:
    CREATE TABLE `test_tb` (                                                 
    `id` int(10) unsigned NOT NULL auto_increment COMMENT '主键自增',  
    `name` char(30) default NULL COMMENT '姓名',                         
    `address` char(60) default NULL COMMENT '地址',                      
    `country` char(200) default NULL COMMENT '国家',                     
    PRIMARY KEY  (`id`)                                                    
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='测试表'  

    3.2 插入数据:
    insert into test_tb(name,address,country) values
    ('zhangsan','北京 朝阳区','中国'),
    ('lisi','上海 浦东区','中国'),
    ('wangwu','郑州金水区','中国'),
    ('zhaoliu','香港九龙','中国香港'),
    ('Q7','加州牛肉','美国'),
    ('wangba','新九州岛','日本')

    3.3查询替换

    (1)将address字段里的 “区” 替换为 “呕” 显示,如下

    select *,replace(address,'区','呕') AS rep

    from test_tb
    (2)将address字段里的 “九” 替换为 “十” 显示,如下
    select *,replace(address,'九','十') AS rep
    from test_tb
    where id in (4,6)
    总结:联想到前面有讲过 使用IF(expr1,expr2,expr3) 及 CASE...WHEN...THEN...END 可以实现查询结果的别名显示,
     但区别是:这两者是将查询结果值做整体的别名显示,而replace则可以对查询结果的局部字符串做替换显示(输出)。

    3.4更新替换
    (1)将address字段里的 “东” 替换为 “西” ,如下
    update test_tb set address=replace(address,'东','西') where id=2

    总结:对字段中局部字符串做更新替换。

    3.5插入替换

    5.1 将id=6的name字段值改为wokou
    replace into test_tb VALUES(6,'wokou','新九州岛','日本')
    总结:向表中“替换插入”一条数据,如果原表中没有id=6这条数据就作为新数据插入(相当于insert into作用);如果原表中有id=6这条数据就做替换(相当于update作用)。对于没有指定的字段以默认值插入。

    3.6二进制类型参数:

    SELECT REPLACE(100111001101,111,000)

    SELECT REPLACE(100111001101,111,0)

    结果为:100101

    结果为:100101

    总结:如果参数是支持的字符数据类型之一,并且在string_replace1 中能够找到string_replace2,那么返回替换后的字符串;反之, 返回 string_replace1;如果参数是支持的 binary 数据类型之一,则返回二进制数据。这个函数有一点不足是不支持 text,ntext类型字段的替换

     

     
  • 相关阅读:
    Python 实例、类方法和静态方法
    allure生成测试报告,index.html页面内容为空
    【UOJ567】【IOI2020】Biscuits(DP)
    【BZOJ2410】Nim游戏(博弈论)
    【洛谷4351】[CERC2015] Frightful Formula(坐标系走路)
    【洛谷3581】[POI2015] CZA(DP)
    【LOJ117】有源汇有上下界最小流
    【洛谷6915】[ICPC2015 WF] Weather Report(哈夫曼树)
    【洛谷6152】[集训队作业2018] 后缀树节点数(SAM+LCT)
    【CF1349D】Slime and Biscuits(势能函数)
  • 原文地址:https://www.cnblogs.com/aczy/p/10923294.html
Copyright © 2011-2022 走看看