SQL - 比解码更简单的功能

Hal*_*Hal 2 oracle plsql decode

我正在使用pl/sql过程.我有一个初始化变量myvar,我想检查它的值:如果它不包含'Z',我希望它包含'P'.

我目前正在这样做:

myvar := decode(myvar,'Z','Z','P');
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有更简单的方法来做到这一点.我的意思是,解码已经很简单了,但我觉得在变量已经存在的时候指定变量的内容是很奇怪的!

如果存在这样的函数,它将如下所示:

Function myfunction(a In Varchar2, b In Varchar2, c In Varchar2) 
Return Varchar2 
Is               
Begin
      if a <> b
      then
           return c;
      end if;
      return a;
End myfunction; 
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激 !

Ton*_*ews 12

没有内置功能可以完全满足您的需求.

您可以使用CASE而不是DECODE:

CASE myvar WHEN 'Z' THEN 'Z' ELSE 'P' END
Run Code Online (Sandbox Code Playgroud)

它不会让它变短!