2

是否有可能使用 SELECT * FROM xy WHERE xy.field in :array; 在 SQL 脚本中?我正在使用 Abap 托管数据库程序

DECLARE arr NVARCHAR(5) ARRAY;
IF i_where = ''
  THEN arr  = ARRAY ('A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7'  );
  ELSE arr  = ARRAY ( i_where );
END IF;

e_result = SELECT DISTINCT
...
 WHERE sales.hierarchy in :arr

谢谢!

4

3 回答 3

0

是的,您可以使用[NOT] MEMBER OF函数https://help.sap.com/saphelp_hanaplatform/helpdata/en/f6/66b950e5d34f84bb5b6f125e7e85c4/content.htm检查数组中的匹配项。

如果您希望数组内容成为列的过滤器,那么您首先需要 UNNEST 它。

于 2016-10-19T23:40:15.543 回答
-1

命名未嵌套字段。tbl = UNNEST(:arr) as ("fieldname"); 尝试... WHERE sales.hierarchy IN(从 tbl 中选择“字段名”)

于 2016-11-30T16:30:00.843 回答
-1

不是直接的,但您可以使用UNNEST来制作一个表格,如下所示:

tbl = UNNEST(:arr);
SELECT .... WHERE sales.hierarchy in :tbl;
于 2016-10-19T16:45:04.053 回答