如果y <x,PL/SQL"在x和y之间"不起作用.为什么?

Can*_*mer 6 oracle plsql

我有一个PL/SQL代码,如:

case when column between 201203 and 201201
then other_column
end
Run Code Online (Sandbox Code Playgroud)

我知道列中的值是201203.因此代码应该返回一些值.但直到我纠正它为止:

case when column between 201201 and 201203
then other_column
end
Run Code Online (Sandbox Code Playgroud)

关键字之间的原因是什么?它是如何在Oracle数据库上实现的?

Mic*_*eim 9

这是ANSI SQL行为.

 expr1 BETWEEN expr2 AND expr3
Run Code Online (Sandbox Code Playgroud)

翻译成

 expr2 <= expr1 AND expr1 <= expr3
Run Code Online (Sandbox Code Playgroud)