我有一个表有一个字段“SUSCRIBER_ID”,表的结构是SUSCRIBER_ID字段不应该为空。现在,我想用以下条件更新该字段的值。
UPDATE table_name SET SUSCRIBER_ID = DECODE (REGEXP_REPLACE (SUSCRIBER_ID,'^\D*',NULL),NULL,SUSCRIBER_ID);
错误即将发生名称SUSCRIBER_ID不能为null但是当REGEXP_REPLACE返回空值时,我正在跳过记录
数据在表格中
name
---------
sumit123sumit
请协助
答案 0 :(得分:1)
UPDATE table_name SET SUSCRIBER_ID = DECODE (REGEXP_REPLACE (SUSCRIBER_ID,'^\D*',NULL),
NULL,
SUSCRIBER_ID,
REGEXP_REPLACE (SUSCRIBER_ID,'^\D*',NULL))
我相信你需要一个REGEXP_REPLACE()
本身的最终默认参数。
正如@AlexPoole所说,其他方式是使用NVL()
UPDATE table_name SET SUSCRIBER_ID = NVL (REGEXP_REPLACE (SUSCRIBER_ID,'^\D*',NULL),
SUSCRIBER_ID);