PL/SQL中的一行IF条件

TCM*_*SSS 7 oracle plsql if-statement

如果在pl/sql中可以写一行吗?我只是好奇.

我想写这个片段:

IF ( i.DECISAO_AT = 'S')
THEN 'PA'
ELSE 'I'
END IF;
Run Code Online (Sandbox Code Playgroud)

而且我想知道是否可以将它写在一行中,就像java一样.像这样:

IF ( i.DECISAO_AT = 'S') ? 'PA' : 'I' ;
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ale*_*ole 10

您可以IF ... ELSE ... END IF;像其他人一样在一行上写一个; 但不,你不能做你的建议,并写"就像Java":

IF ( i.DECISAO_AT = 'S') ? 'PA' : 'I' ;
Run Code Online (Sandbox Code Playgroud)

PL/SQL不了解Java ?:语法,也没有自己的三元运算符.您只能使用文档中描述的内容.对于这个特别的陈述,最接近我认为你要问的是,可能是case:

CASE WHEN i.DECISAO_AT = 'S' THEN 'PA' ELSE 'I' END
Run Code Online (Sandbox Code Playgroud)

或者也许是decode,正如xQbert已在评论中提出的那样.虽然不再是"IF".


Mou*_*diz 3

PL/SQL一行或多行代码执行起来没有问题。重要的是语法是否正确。