是否可以创建一个动态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个字符,包含列名。