Abap bsp中的动态ORDER BY。按[变量]而不是列名排序?

时间:2014-08-09 15:43:45

标签: sql sap abap bsp

是否可以在Abap bsp中创建动态Order?就像是     选择* from ztable_name Order by variable_name

或者,如果不可能,还有其他方法可以做到这一点吗? 谢谢,提前感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

请查看documentation

  

动态指定列

     

要动态指定ORDER BY子句中的列,请使用:   SELECT ... ORDER BY (<itab>).其中<itab>是内部表格   行类型C,最大长度为72个字符   专栏名称。

答案 1 :(得分:1)

vwegert 的答案提供更多详细信息:在您的示例中,variable_name必须是列的名称(因为您希望按列排序)。但这不是通过使用文本变量,而是使用文本表。想象一下,您要订购的表格有5列:

  • COL1
  • COL2
  • COL3
  • COL4
  • COL5

如果你想动态订购它,让我们说COL2和COL4,就像这样:

DATA: itab_order TYPE TABLE OF  char_72,
      wa_order   LIKE LINE OF   itab_order.

wa_order = 'COL2'.
APPEND wa_order TO itab_order.
wa_order = 'COL4'.
APPEND wa_order TO itab_order.

SELECT *
  FROM ztable_name
  INTO itab_ztable_name
  ORDER BY (itab_order).
  ENDSELECT.

希望这会有所帮助:)