update account set POST_ADDR=(select custom_temp.ADDR from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID);
Oracle: update account set POST_ADDR=(select custom_temp.ADDR from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID);SqlServer: update account set POST_ADDR=custom_temp.ADDR from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID这就是oracle与sqlserver众多区别中的一个。
update account 2 set POST_ADDR=custom_temp.ADDR 3 from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID;分號要放在sql語句結束的地方.就可以了 from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID ==> update account 2 set POST_ADDR=custom_temp.ADDR 3 from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID;
谢谢楼上各位的热心帮助了,开始以为ORICAL里SQL的语法完全一样了,现在看来还得弄本书看看
update account set POST_ADDR=(select custom_temp.ADDR from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID); 这样写的话只对于返回一个值是可以的,但两张表里有N个CUST_ID分别相等,SELECT返回值大于一个了,这样就要报错了,是不是要写个什么循环的
update account set POST_ADDR=(select custom_temp.ADDR from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID);SqlServer:
update account
set POST_ADDR=custom_temp.ADDR
from account,custom_temp
where account.CUST_ID=custom_temp.CUST_ID这就是oracle与sqlserver众多区别中的一个。
2 set POST_ADDR=custom_temp.ADDR
3 from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID;分號要放在sql語句結束的地方.就可以了
from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID
==>
update account
2 set POST_ADDR=custom_temp.ADDR
3 from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID from account,custom_temp where account.CUST_ID=custom_temp.CUST_ID;
这样写的话只对于返回一个值是可以的,但两张表里有N个CUST_ID分别相等,SELECT返回值大于一个了,这样就要报错了,是不是要写个什么循环的