SAP-ABAP-SQL中NE (不等于)这个操作符,碰上 and 和 or 时的用法和神奇现象

SAP-ABAP-SQL中ne这个操作符的用法和现象

看下图的1234 : 其中 2 和 3的效果相同,可以看出  最后一个 and 有点独立的意思, 先执行 and ,再去执行它前面的 or

再看下面的例子,加深了解

1.原始的语句如下,可以看到,出了5条数据

2,如果我不想看到 年=2022 ,月=4 这条记录, 正常的sql server 或者 pl/sql 的语法应该是:
select * from mska where  lfgja <> 2020 and  lfmon <> 4

这里的  <> 在 abap 中语法 是 NE ,不等于的意思。  上面这段话就是找满足 年不是2020 ,并且 月不是4的数据。

但是,神奇的现象产生了。在abap 中

加了年不等于2020 and 月不等于 4, 会发现把所有 年= 2020   或者 月=4 等数据都排除了,如下: 只剩下了年 = 2019 或者 2021,月 不是4的数据了  ,感觉 下面图里的  and 是 或的概念。

3 .改成 or ,神奇的现象又产生了, 只去掉了  年 =2020 且 月 =4 的那行数据。 是不是和平时的sql 逻辑不一样,结合 NE 后, and 变成了或的意思, or 变成了和的意思, 反着来了, 请留意,可以自己动手试试

 

 

 

 

作者: 轻烟随风
当前文章地址: https://www.zyxpp.com/sap-abap-sqlne/
来源: 轻烟随风的博客
文章版权归作者所有,欢迎转载
THE END
分享
二维码
< <上一篇
下一篇>>