删除Hana中相等的记录

2020-08-25 01:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) Hana中是否有任何功...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


Hana中是否有任何功能可以让我根据记录号删除记录? 例如:在Oracle中,该功能称为 ROWNUMBER

(83.1 kB)
4条回答
大简至美
2020-08-25 02:19 .采纳回答

您好,马里奥

您可以使用" $ rowid $"来实现。 这是一个内部专栏,SAP强烈建议您不要使用它们。 它不在任何程序或脚本中。 如果您想了解更多有关它们的信息,请阅读以下SAP注释(按顺序):

https://launchpad.support.sap.com/#/notes/2414714

https://launchpad.support.sap.com/#/notes/1986747

话虽如此,以下是一个示例 工作原理-仅出于教育目的:

创建表table_a(
 acol1 int不为null
 );

 INSERT INTO table_a(acol1)values(1);
 INSERT INTO table_a(acol1)values(2);
 INSERT INTO table_a(acol1)values(3);
 INSERT INTO table_a(acol1)values(4);

 SELECT" $ rowid $",* from table_a; 

结果应类似于:

 $ rowid $; ACOL1
 1; 1
 2; 2
 3; 3
 4; 4
 

现在让我们从第2行和第3行中删除记录。

从table_a中删除(2,3)中的" $ rowid $";
 从table_a中选择" $ rowid $",*;
 

结果是:

 $ rowid $; ACOL1
 1; 1
 4; 4
 

在这种情况下,如果使用表自己的列进行过滤,则可以通过相同的语句来完成:

从table_a删除,其中(2,3  );
 从table_a中选择" $ rowid $",*;
 

结果基本相同:

 $ rowid $; ACOL1
 1; 1
 4; 4 

作为个人建议:使用严格定义的过滤器构建查询并运行它。 请勿将内部列用于此目的。 我看不到为此使用rowid的原因背后的任何逻辑-除非您在没有主键/唯一索引的表中有重复的记录。

尽管如此,我还是建议 您需要备份表并彻底测试其关系,以避免任何逻辑上的不一致(从应用程序角度来看)。

最诚挚的问候,

Luis

一周热门 更多>