从品牌网站建设到网络营销策划,从策略到执行的一站式服务
哥们,不用循环吧?再说用循环也不能解决吧,循环你的值怎么赋?你怎么知道下个记录该更新成什么?
创新互联专注于全椒网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供全椒营销型网站建设,全椒网站制作、全椒网页设计、全椒网站官网定制、微信小程序服务,打造全椒网络公司原创品牌,更为您提供全椒网站排名全网营销落地服务。
通过to_char(to_date(logintime,'yy-mm-dd'),'yyyy-mm-dd')试试可不可转换,没环境没法试,不行的话用instr函数,一句update就行了,不过我现在没时间写代码,给你个思路
instr((logintime,'-',1)可以取出第一个-的位置,然后通过substr(logintime,1,instr((logintime,'-',1)-1)取出第一个-前面的部分,就是年,20||就行了,然后再用instr(logintime,'-',2)
--这个是第2个-的位置,知道第1、2个-的位置后还是通过substr取出第1个-和第2个-之间的字符,就是月,case when一下如果是1位就补个0,。。。。依次类推,麻烦是麻烦点,但是比较通用,能适应各种情况,不过日期的话应该有规律,应该能根据规律简化不少,你自己琢磨吧.
如果你非要用循环可通过rowid这个伪列,即定义一个参数做计数用,循环一次加1,直到等于max(rowid)为止,不过我实在想不出用循环怎么弄,期待高手。。。
FOR N IN (SELECT COLUMN1 FROM TABLE1)【这个查出结果A,B】
UPDATE TABLE2
SET COLUMN2 = N.COLUMN1
WHERE TABLE2.X=XX;
LOOP
方法一:
采用存储过程,使用循环,限制更新的条数,效率不是很高。。
方法二:
建立和目标表一样的结构的临时表(基于事务的临时表,保证主键一样),使用视图更新的操作。
update( select a.A列,b.A列 from t1 a,temp_t1 b where a.id=b.id) set a.A列=b.A列
方法三:
同样的使用临时表,根据插入产生的日志少于update的日志的办法,使用
truncate table t1;
create table t1 as select * from temp_t1;
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图