当前位置:   article > 正文

SQL 遍历表的方法_sql遍历表中所有数据

sql遍历表中所有数据

问题描述,在SQL数据库中有很多数据,其中的一列,需要根据其它几列的值进行更新,比如,如果其值比某列小,用其他几列的最大值再加1。要对现有数据库中的所有数据都进行更新。

考虑用循环进行处理。从网上找到的参考方法如下。其思路是,将原来的表中的几个关键列读出来存入表变量中,作为循环更新时的索引。

循环时,从表变量中逐行读出列号信息,根据其列号去处理原表中的信息,处理完成,从表变量中删除该行。

按这种思路很方便的解决了我的问题。

使用表变量

  下面这种方法是使用表变量的方式实现的,代码如下。

-- 方法2:使用表变量
-- 声明表变量
DECLARE @temp TABLE
(
    empid INT,
    firstname NVARCHAR(10),
    lastname NVARCHAR(20)
);

-- 将源表中的数据插入到表变量中
INSERT INTO @temp(empid, firstname, lastname )
SELECT empid,firstname,lastname FROM HR.Employees
ORDER BY empid;

-- 声明变量
DECLARE
    @empid AS INT,
    @firstname AS NVARCHAR(10),
    @lastname AS NVARCHAR(20);
    
WHILE EXISTS(SELECT empid FROM @temp)
BEGIN
    -- 也可以使用top 1
    SET ROWCOUNT 1
    SELECT @empid= empid, @firstname= firstname,@lastname= lastname FROM @temp;
    UPDATE HR.Employees SET fullname= @firstname+' '+@lastname WHERE empid=@empid;
    SET ROWCOUNT 0
    
    DELETE FROM @temp WHERE empid=@empid;
END

 

 

----------------------------------

参考地址:

https://www.cnblogs.com/mcgrady/p/4182486.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/409854
推荐阅读
相关标签
  

闽ICP备14008679号