假设某表 t1   字段名 a1,a2,a3
另一表  t2    字段名  c,c1
t2中有多条记录:
c     c1
a1   10
a2   15
a3   20该怎么实现这种情况:
t1表:
a1   a2   a3
10   15   20其实,就是想实现t2表的c字段的值,对应的就是t1表的字段名的情况。

解决方案 »

  1.   

    select max(a1) a1,max(a2) a2,max(a3) a3 from
    (select case when c='a1' then c1 else null end a1,
                case when c='a2' then c1 else null end a2,
                case when c='a3' then c1 else null end a3 
      from t2)
      

  2.   


    虽然不知道 case when c='a1' then c1 else null end a1,  代表什么意思,但是测试了一下确实能得到结果,我想得到是把 10  15 20 插入到t1表中,作为一条记录,能实现吗?
      

  3.   

    如果你只是更新就更容易了   insert into t1(a1)  select c1 from t2 where c='a1'  a2  a3字段同理   如果你想一次更新表的数据就用if分支判断语句就可以了