2020-09-26 00:13发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我在讨论中看到了以下解决方案:
从MY_TABLE删除其中(,,<...>)的地方(从的MY_TABLE顺序中选择顶部 ,,<...>) ;
但是对于我来说,我无法比较这些字段,因为它可以删除在前N行之后的表中的其他重复记录。 我只想删除前N行。
嗨,
您可以按以下方式修改查询。
从MY_TABLE删除,其中
(从
(通过从MY_TABLE顺序中选择不同的*));
此致
Jyoti
您使用的是没有主表的表还是该语句对您不起作用?
Sreeram,
我定期使用下面的SQL扫描一些SAP HANA系统表,例如M_BACKUP_CATALOG,以查找表中的顶部(最新)条目。 它也应该适用于DELETE:
从M_BACKUP_CATALOG中选择TOP 2 ENTRY_ID,SYS_START_TIME,SYS_END_TIME,STATE_NAME,其中entry_type_name如" complete%"按sys_start_time desc排序
修改查询以符合您要查找的条件,然后尝试一下。 在尝试任何操作之前,请记住先备份:)
Srinivas
除了弗洛里安的问题:您想通过"删除前N条记录"解决什么情况?
您可以使用" $ rowid $"。 (不要使用大写字母,否则将无法使用)没有人提及,但是sap_hana中的每个表都有一个隐藏列,即" $ rowid $" 您可以使用以下代码;
注意:请使用$ rowid $,后果自负。 它没有文档记录,不受支持,完全不建议使用。 ( Lars Breddemann 已经从技术上解释了为什么我们不应该使用它)/p>
从" TABLE_NAME"中删除,其中" $ rowid $" <1000
$ rowid $列的值与分区ID相关。 对于没有分区的表,该值的范围是1到18014398509481984。在分区表上,分区1的值开始于18014398509481985;对于分区1,该值从1开始。 分区2开始于36028797018963969; 分区3开始于54043195528445953; 等等。 从$ rowid $中可以得到分区ID(如果需要该信息)。 Lars Breddemann 可以提供更多信息。
我再说一次; SAP并未正式支持$ rowid $列。 因此,谨慎使用此选项,后果自负。 另外,由于触发了一些内部流程,您将对包含隐藏列的查询造成性能损失。 通常,最好选择SAP HANA正式支持的功能。 老实说,改变sap hana景观中的$ rowid $行为可能比关闭整个公司更难。 即使在任何HANA源代码中加了一个逗号,也可能需要董事会会议,500-600次内部讨论,对汁液技术架构师的看法以及内部的一些民主投票。 无论如何,这些都不会让我们鼓舞我们。 最好选择内部已经存在的标准方法。
你好Srinivas,
不幸的是,这并不容易。 在HANA中没有" DELETE TOP 2 FROM ...."。
Joyti提到的选项最近已经提出,并且似乎是有效的。
BR,Bojan
最多设置5个标签!
嗨,
您可以按以下方式修改查询。
从MY_TABLE删除,其中
中的((从
选择顶部(通过从MY_TABLE顺序中选择不同的*));
此致
Jyoti
您使用的是没有主表的表还是该语句对您不起作用?
Sreeram,
我定期使用下面的SQL扫描一些SAP HANA系统表,例如M_BACKUP_CATALOG,以查找表中的顶部(最新)条目。 它也应该适用于DELETE:
从M_BACKUP_CATALOG中选择TOP 2 ENTRY_ID,SYS_START_TIME,SYS_END_TIME,STATE_NAME,其中entry_type_name如" complete%"按sys_start_time desc排序
修改查询以符合您要查找的条件,然后尝试一下。 在尝试任何操作之前,请记住先备份:)
Srinivas
除了弗洛里安的问题:您想通过"删除前N条记录"解决什么情况?
您可以使用" $ rowid $"。 (不要使用大写字母,否则将无法使用)
没有人提及,但是sap_hana中的每个表都有一个隐藏列,即" $ rowid $"
您可以使用以下代码;
注意:请使用$ rowid $,后果自负。 它没有文档记录,不受支持,完全不建议使用。 ( Lars Breddemann 已经从技术上解释了为什么我们不应该使用它)/p>
$ rowid $列的值与分区ID相关。 对于没有分区的表,该值的范围是1到18014398509481984。在分区表上,分区1的值开始于18014398509481985;对于分区1,该值从1开始。 分区2开始于36028797018963969; 分区3开始于54043195528445953; 等等。 从$ rowid $中可以得到分区ID(如果需要该信息)。 Lars Breddemann 可以提供更多信息。
我再说一次; SAP并未正式支持$ rowid $列。 因此,谨慎使用此选项,后果自负。 另外,由于触发了一些内部流程,您将对包含隐藏列的查询造成性能损失。 通常,最好选择SAP HANA正式支持的功能。 老实说,改变sap hana景观中的$ rowid $行为可能比关闭整个公司更难。 即使在任何HANA源代码中加了一个逗号,也可能需要董事会会议,500-600次内部讨论,对汁液技术架构师的看法以及内部的一些民主投票。 无论如何,这些都不会让我们鼓舞我们。 最好选择内部已经存在的标准方法。
你好Srinivas,
不幸的是,这并不容易。 在HANA中没有" DELETE TOP 2 FROM ...."。
Joyti提到的选项最近已经提出,并且似乎是有效的。
BR,Bojan
一周热门 更多>