这有点难以解释,但会尽量解释。
我有table1
,其中列b和键为a列。
我正在尝试基于select语句插入到table1中。
例如:
insert into table1(a,b)
select xyz.adata , getbdata(xyz.c) from xyztable xyz where xyz.adata = 234
我的功能很大,所以要保持简单
假设getbdata(int c)函数有 类似于(xyz.c - othertable.d - table1.b)的给定键,
当我执行select时,会正确返回getbdata(xyz.c)值。
但是当我根据select进行插入时,列b数据没有得到 正确插入。
例如)如果xyz.c为50,othertable.d = 10且table1.b = 0
select xyz.adata , getbdata(xyz.c)
from xyztable xyz
where xyz.adata = 234
会返回类似
的内容adatavalue , 40
但是当我根据上面选择插入表1进行插入时,
它将返回类似
的内容adatavalue , 0
(我认为它确实像50-10-40这样)
Bottomline - 我在尝试基于select进行插入时遇到问题,而select又会在同一个表上进行一些计算。
我总是可以从上面的select语句中获取数据并将其放在游标中,然后尝试插入到table1中。
但是为什么基于select语句的插入失败。