select decode(id,1,'dnum',2,'dprice') from table2

解决方案 »

  1.   

    好像在Sql server中没有有decode,惨
      

  2.   

    哦,我理解错了
    你是要:当table1.id=table2.id的时候返回table2中字段名为table1
    中和该id对应的name字段的值的记录,
    就是id=1时返回table2中字段dnum
      

  3.   

    你是说sql server?那我不知道了
      

  4.   

    你这个问题很有意思,你是想写出动态的SQL吧!
    用DECODE可以写出半动态的SQL,就是根据ID的值来取对应的字段值,在SQL SERVER中可以用IIF来替换DECODE,功能一样。
    但这只是一个半动态的,因为如果ID 和字段名的对应关系变了(就是TABLE1的内容变了),这个SQL的结果是不会变的。
    恐怕写不出通过改变TABLE1的内容能使对TABLE2的查询结果也改变的SQL,在存储过程里可以拼出动态的,哈哈!我也想写出动态的SQL,哪多省事!!!
      

  5.   

    jiezhi(相逢何必曾相识) :试试你的语法是不是正确,decode的参数肯定不正确。
     qiubolecn (来自差生市):你的这个问题其实不难,但却象 CHENGXB(大山) 说的那样,不能完全动态,如果用DECODE来实现,也只能实现半动态。
     虽然我不太了解Sql server,但我想既然Sql server数据库能生存这么久,市场这么大,它就一定有一个类似ORACLE中DECODE的函数,你找找看。