动态排序由[variable]代替列名



是否可以创建一个动态Order by?就像

Select * from ztable_name Order by variable_name

或者如果不可能的话,还有其他方法可以做类似的事情吗?谢谢,提前感谢您的帮助。

的答案提供进一步的细节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.

希望这对你有帮助

请查看文档:

动态指定列

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

相关内容

  • 没有找到相关文章

最新更新