表a结构如下:showname  colName
姓名    name
地址     adr
性别     sex表b结构如下:
name    adr    sex
陈 江东 男要求得到如下结果:
姓名     陈
地址     江东
性别     男注意:表a中的colName的值正好是表b的字段名

解决方案 »

  1.   

    直接在sql中值是无法当列去查询的
    需要去拼
      

  2.   

    create table A(showname varchar(10) , colName varchar(10))
    insert into A values('姓名', 'name') 
    insert into A values('地址', 'adr') 
    insert into A values('性别', 'sex') 
    create table B(name varchar(10), adr varchar(10), sex varchar(10))
    insert into B values('陈', '江东', '男' )
    goselect A.showname , B.name from A,B where A.colname = 'name'
    union
    select A.showname , B.adr from A,B where A.colname = 'adr'
    union
    select A.showname , B.sex from A,B where A.colname = 'sex'drop table A,B/*
    showname   name       
    ---------- ---------- 
    地址         江东
    姓名         陈
    性别         男
    */
      

  3.   

    有一点忘了说了,对于a表中的记录是不固定的,b表中的列也是不固定的
    a表中有多少条记录,b表中就有相应的列与之对应
      

  4.   

    楼住的
    name    adr    sex是需要动态得到的
    存储过程去写吧!
      

  5.   

    不是的,也就是根据表a 中colName 的值,在表b中对应 的值查出来