select decode(id,1,'dnum',2,'dprice') from table2
解决方案 »
- 17003 无效的列索引
- oracle9i作业问题
- 求助 如何定时导入txt文件数据到oracle中
- SQL语句执行速度问题。
- 这个CASE语句怎么写。
- 关于触发器问题
- powerdesign 如何连oracle 9I接数据库. 连接如何在数据库中建表
- 关于oracle各版本用户密码修改的问题
- 新手,超级简单问题! CRETE TABLE
- pl/sql :sql statement ignoed 求教各位大神 谢谢
- 在做RAID时选择分区ID进行CONFIG时报no driver responsing!该如何解决?
- 50分紧急求救,不够说话:oracle会话问题:1.oracle8i中是不是可以自动杀掉inactive session,如果可以,怎么操作2.oracle8i设置会话数目有没
你是要:当table1.id=table2.id的时候返回table2中字段名为table1
中和该id对应的name字段的值的记录,
就是id=1时返回table2中字段dnum
用DECODE可以写出半动态的SQL,就是根据ID的值来取对应的字段值,在SQL SERVER中可以用IIF来替换DECODE,功能一样。
但这只是一个半动态的,因为如果ID 和字段名的对应关系变了(就是TABLE1的内容变了),这个SQL的结果是不会变的。
恐怕写不出通过改变TABLE1的内容能使对TABLE2的查询结果也改变的SQL,在存储过程里可以拼出动态的,哈哈!我也想写出动态的SQL,哪多省事!!!
qiubolecn (来自差生市):你的这个问题其实不难,但却象 CHENGXB(大山) 说的那样,不能完全动态,如果用DECODE来实现,也只能实现半动态。
虽然我不太了解Sql server,但我想既然Sql server数据库能生存这么久,市场这么大,它就一定有一个类似ORACLE中DECODE的函数,你找找看。