【问题标题】:SQL update part of string [duplicate]SQL更新字符串的一部分[重复]
【发布时间】:2022-01-01 00:51:30
【问题描述】:

表名:blist

serial_no   city
abcd_086    US
abcd_087    US
abcd_088    US
abcd_089    US
abcd_090    US

任何可以将 abcd_086,087 等替换为 xyz_086,087 等的 sql 查询。 需要用 xyz 替换 serial_no 列的前 4 个字符。 请帮忙!!!

【问题讨论】:

  • 标记垃圾邮件并不能帮助我们帮助您;不要这样做。只需标记与您的问题相关的内容。说到你的问题,它是什么?

标签: sql


【解决方案1】:

结果可能因数据库而异。但所有这些都是接近的。我使用 postgres 数据库。

UPDATE "blist"
SET "serial_no" = CONCAT('xyz',SUBSTRING("serial_no",5));

【讨论】:

    【解决方案2】:

    替换它

    update blist
    set serial_no = replace(serial_no, 'abcd_', 'xyz_')
    where city = 'US'
      and serial_no like 'abcd%'
    

    Demo

    【讨论】:

      【解决方案3】:

      SQL 提供了一个非常有用的字符串函数,称为 REPLACE,它允许您用新的子字符串替换字符串中所有出现的子字符串。

      UPDATE students
      SET serial_no = REPLACE(serial_no, 'abcd_', 'xyz_');
      WHERE city = 'US' and serial_no like 'abcd_%';
      
      SELECT * FROM STUDENT;
      

      在这里,您会收到Demo

      【讨论】:

        【解决方案4】:

        ANSI SQL 方法用 xyz 替换 serial_no 列的前 4 个字符

        update blist
        set serial_no = 'xyz' || substring(serial_no from 5)
        

        【讨论】:

          猜你喜欢
          • 2016-05-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-26
          • 1970-01-01
          • 1970-01-01
          • 2016-03-15
          • 2013-04-26
          相关资源
          最近更新 更多