带有空子查询的 IN 行为
Behavior of IN with empty subquery
我想 select 来自 table KNA1
的每个客户,这些客户在 table KNBK
.
中没有任何条目
所以我做了一个 select 查询,它应该为我做这个:
SELECT-OPTIONS: s_kn_nr FOR kna1-kunnr.
SELECT-OPTIONS: s_kn_okd FOR kna1-ktokd.
SELECT * FROM kna1
INTO TABLE @DATA(ls_kna1)
WHERE kunnr IN @s_kn_nr
AND ktokd IN @s_kn_okd
and kunnr not in ( select kunnr from knbk where kunnr in @s_kr_nr )
现在我的问题是,select 查询是否以与空 select 选项相同的方式处理空子 select 并且只是 select 所有内容?
答案很简单:没有。
这样的子查询returns集合和IN
在这里的作用就如同属于集合或不属于集合的数学运算。所以如果集合为空则没有元素属于它。
我想 select 来自 table KNA1
的每个客户,这些客户在 table KNBK
.
所以我做了一个 select 查询,它应该为我做这个:
SELECT-OPTIONS: s_kn_nr FOR kna1-kunnr.
SELECT-OPTIONS: s_kn_okd FOR kna1-ktokd.
SELECT * FROM kna1
INTO TABLE @DATA(ls_kna1)
WHERE kunnr IN @s_kn_nr
AND ktokd IN @s_kn_okd
and kunnr not in ( select kunnr from knbk where kunnr in @s_kr_nr )
现在我的问题是,select 查询是否以与空 select 选项相同的方式处理空子 select 并且只是 select 所有内容?
答案很简单:没有。
这样的子查询returns集合和IN
在这里的作用就如同属于集合或不属于集合的数学运算。所以如果集合为空则没有元素属于它。