读书人

求解一个update语句解决办法

发布时间: 2012-02-11 09:51:35 作者: rapoo

求解一个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 吧
以免可能出错。

读书人网 >IBM DB2

热点推荐