当前位置: 代码迷 >> DB2 >> 求解一个update语句解决办法
  详细解决方案

求解一个update语句解决办法

热度:7904   发布时间:2013-02-26 00:00:00.0
求解一个update语句
今天看到一个语句
SQL code
UPDATE (SELECT * FROM RPT_E_CORPINFO_DAILY WHERE DAY_ID = 20090101) RSET R.CITY_ID = (SELECT D.CITY_ID FROM DIM_E_CITY D WHERE R.CITY_ID=D.E_CITY_ID OR R.CITY_ID=D.CITY_ID)


这个语句是不是和

SQL code
update RPT_E_CORPINFO_DAILY RSET R.CITY_ID = (SELECT D.CITY_ID FROM DIM_E_CITY D WHERE R.CITY_ID=D.E_CITY_ID OR R.CITY_ID=D.CITY_ID)WHERE R.DAY_ID=20090101


是等同的?

------解决方案--------------------------------------------------------
是等同的
------解决方案--------------------------------------------------------
一般以第二种可靠。第一种这种写法很少见,并且有一些限制。
------解决方案--------------------------------------------------------
第二种我用过,是借用临时表进行数据处理

为了稳妥起见,你还是在第二个语句括号里面加上 fetch first 1 rows only 吧
以免可能出错。
  相关解决方案