SAP HANA SQL SCRIPT选择数组中的位置

时间:2016-10-19 14:00:43

标签: sap abap hana

是否有可能使用类似SELECT * FROM xy WHERE xy.field的内容:array; 在SQL SCRIPT?我正在使用Abap Managed Datebase Procedures

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

谢谢!

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:-1)

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

tbl = UNNEST(:arr);
SELECT .... WHERE sales.hierarchy in :tbl;

答案 2 :(得分:-1)

命名不需要的字段。 tbl = UNNEST(:arr)as(" fieldname"); 尝试  ...在哪里sales.hierarchy IN(selec" fieldname" from tbl)