大侠好!
我现有表A,其中字段age为null:
A:
name sex book age
郭 男 ORACLE
梁 男 MSSQL
许 女 MYSQL B:
sex
name sex age
郭 男 20
郭 男 22
梁 男 28
许 女 18我想,查出根据A表的name,sex分组,与B表中根据name,sex,age的分组结果通过name,sex关联。更新A表中的age,且如果在B表中有多条(age不同)对应与A表中name,sex一条时,不仅要更新A表中存在记录的age,还要增加一条新的记录,记录中name,sex,book与原记录相同,age为B表中另一条记录的值,结果如下:
A:
name sex book age
郭 男 ORACLE 20
郭 男 ORACLE 22
梁 男 MSSQL 28
许 女 MYSQL 18
请问,在存储过程,或SQL中怎样实现?
我现有表A,其中字段age为null:
A:
name sex book age
郭 男 ORACLE
梁 男 MSSQL
许 女 MYSQL B:
sex
name sex age
郭 男 20
郭 男 22
梁 男 28
许 女 18我想,查出根据A表的name,sex分组,与B表中根据name,sex,age的分组结果通过name,sex关联。更新A表中的age,且如果在B表中有多条(age不同)对应与A表中name,sex一条时,不仅要更新A表中存在记录的age,还要增加一条新的记录,记录中name,sex,book与原记录相同,age为B表中另一条记录的值,结果如下:
A:
name sex book age
郭 男 ORACLE 20
郭 男 ORACLE 22
梁 男 MSSQL 28
许 女 MYSQL 18
请问,在存储过程,或SQL中怎样实现?
select a.name,a.sex,a.book,b.age
from a,b
where a.name=b.name(+)
and a.sex=b.sex(+)--这个语句就能得到你要的结果了,为什么还要更新和插入到A表?不懂竟然要更新和插入A表,那么用这个结果来做MERGE INTO 即可