【问题标题】:Using substring in SQL update statement在 SQL 更新语句中使用子字符串
【发布时间】:2017-02-08 09:12:57
【问题描述】:

我正在编写一个 SQL 查询,通过在 CUST_NAME 列上附加单词“CHECKED”来更新它。但是,该列只有 100 个字符长,如果我有一个已经很长的客户名称,我会遇到错误并尝试将 CHECKED 附加到它。所以我想在 sql 中使用 Substring 函数,但有点难过。如果 CUST_NAME 字段的附加词超过 100 个字符,我希望能够对它进行子串化。我该怎么做? 谢谢

UPDATE CUST_INFO cust
  SET CUST_NAME = (CUST_NAME||'_CHECKED')
  WHERE process_timestamp = null;

【问题讨论】:

  • 请用您正在使用的数据库标记您的问题。

标签: sql oracle oracle11g substring


【解决方案1】:

这是一种方法:

UPDATE CUST_INFO cust
    SET CUST_NAME = SUBSTR(CUST_NAME, 1, 92) || '_CHECKED'
    WHERE process_timestamp is null;

另外,如果您想更新任何记录,请使用 is null 而不是 = null(后者永远不会评估为 true)。

注意:并非所有数据库都有left() 函数,您可以使用substr() 或等效函数。

【讨论】:

  • 谢谢,我最终使用了 oracle 的 substr() 函数,如下所示:(SUBSTR(CUST_NAME,0,92)||'_CHECKED')
猜你喜欢
  • 1970-01-01
  • 2013-11-28
  • 2017-07-12
  • 2015-05-09
  • 2016-08-11
  • 1970-01-01
  • 2015-11-13
  • 2018-10-02
  • 1970-01-01
相关资源
最近更新 更多