在SQL更新语句中使用substring

时间:2016-09-29 21:46:28

标签: sql oracle oracle11g substring

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

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

1 个答案:

答案 0 :(得分:1)

这是一种方式:

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

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

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