我需要知道如何在 SELECT 中对必须为空的字段进行比较。
我正在尝试从 bkpf 中选择一些字段,字段 stblg 为空。我是这样做到的:
SELECT c~kunnr a~belnr d~spart c~bldat c~waers a~hwaer f~mwskz
INTO CORRESPONDING FIELDS OF TABLE lt_data
FROM ( ( ( bsis AS f
INNER JOIN bkpf AS a ON f~belnr = a~belnr )
INNER JOIN bsad AS c ON c~belnr = a~belnr )
INNER JOIN vbrk AS d ON d~vbeln = c~belnr )
WHERE a~gjahr IN gjahr
AND a~bukrs IN bukrs
AND c~augdt IN augdt
AND a~stblg = ' '
AND f~hkont = '0034930020'.
这是正确的还是我必须使用其他东西?谢谢。
在您的情况下,您可以使用AND a~stblg = ' '
或已经提到的AND a~stblg EQ SPACE
- 没有区别(我建议使用 SPACE
.对于' '
,您无法确定是否要检查空格或忘记在".)
在数据库级别,空可以有另一种含义。数据库在space
或' '
和无值(NULL
)之间产生差异。
您可以使用以下命令在 SAP 中检查NULL
:
AND a~stblg IS NULL
在您的情况下,此语句不应选择任何内容,因为 SAP 通常会为空字符值存储空间。
或者,您可以使用:
AND a~stblg EQ SPACE
--
塔尔哈