informix 中update 前2条记录的 SQL语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了informix 中update 前2条记录的 SQL语句相关的知识,希望对你有一定的参考价值。
如何写这条SQL语句 或前N条记录的SQL语句
我的问题是说到了,是informix的数据库
想了很长时间没有办法,先把rowid放进去一个临时表,再从临时表查询更新.
select first 3 rowid as id from tpa_rnc_sum into temp temp_table;
update table_name set ne_type=10003 where rowid in (select id from temp_table);
不知道还没有其他的好方法,尽力了~ 参考技术A update tb01 set fd1 = 'aa'
where id in (select top 10 id from tb01) 参考技术B 看你是哪个版本的数据库了,如果是10以后的版本,可以使用 skip来跳跃选页的。
如何从雪花数据库中的表中删除前 N 条记录
【中文标题】如何从雪花数据库中的表中删除前 N 条记录【英文标题】:How to DELETE top N records from Table in Snowflake Database 【发布时间】:2020-08-21 12:30:17 【问题描述】:我想在Snowflake DB中执行DELETE
操作,有记录限制,我的要求是批量执行DELETE
操作,比如先删除前1000条记录,然后再删除下1000条记录等等。
在 SQL Server 中,我们可以使用如下查询:
DELETE TOP (1000) FROM TABLE_NAME;
我正在寻找有关 Snowflake DB 的类似查询,我浏览了 Snowflake 文档以进行删除 - https://docs.snowflake.com/en/sql-reference/sql/delete.html,但我没有找到与 TOP
或 LIMIT
匹配的语法。
【问题讨论】:
【参考方案1】:这可能不是您正在寻找的答案,但您在 SQL Server 上删除 1000 个块的原因是因为 SQL Server 将这些记录到事务日志中,删除记录,更新索引等,而且更多以这种方式做事很有效率。在雪花中,它不是。
Snowflake 不记录删除,没有索引,事实上,它实际上并没有删除记录,而是重新创建这些记录来自的微分区,而不会删除记录。所以,事实上,在 Snowflake 中小批量删除实际上效率要低得多。相反,您应该简单地使用您希望删除的记录发出一条删除语句,然后让它完成它的工作。
【讨论】:
【参考方案2】:试试这个
DELETE FROM <TABLE>
WHERE <ID_COL> IN
(
SELECT TOP 2 <ID_COL> FROM <TABLE>);
【讨论】:
以上是关于informix 中update 前2条记录的 SQL语句的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 MERGE 语句的情况下执行 Update else Insert 操作 win INFORMIX
在 UPDATE 查询中使用 DateTime 或字符串参数时,Informix 11.7 返回 -1 作为受影响的行数