如何在Oracle更新查询中使用if语句

我想在Oracle更新中使用if语句。以下是我想达到的条件,我将无法使用PL / SQL。我想使用update语句实现以下结果。

if code like'0001'  then
   code ='0001'
elsif code like'01' then 
   code = 'ok'
else 
   code = 'NOTOK'
end

我尝试了以下更新语句,但并非完全符合我的需要,而是尝试使用用例进行简单更新。

UPDATE tblname
SET CODE =  CASE
              WHEN CODE not like '01% OR CODE not like '0001% THEN
                'NOTOK'
            END
charlesluo326 回答:如何在Oracle更新查询中使用if语句

您可以应用多个WHEN ... THEN。第一场比赛获胜,因此就像您的if / else if一样。

UPDATE tblname 
SET code = CASE WHEN code LIKE '0001%' THEN '0001'
                WHEN code LIKE '01%' THEN 'ok'
                ELSE 'NOTOK'
           END;
,

您似乎想使用

UPDATE tblname 
   SET "DESC" = CASE 
                WHEN SUBSTR(CODE,1,2)='01' THEN 
                     'OK' 
                WHEN SUBSTR(CODE,4)='0001' THEN 
                     SUBSTR(CODE,4)
                ELSE
                     'NOT OK'
                END

desc是保留关键字。因此,不能有未引用的列名。

本文链接:https://www.f2er.com/3142490.html

大家都在问