ZDNetChina中文社区 » 数据库开发 » 在Oracle数据库中,以常量作为一个单独的列查询


2008-5-29 17:26 saley_wook
在Oracle数据库中,以常量作为一个单独的列查询

我遇到的情况类似这样:




有三个表table1,table2,table3。他们的列一样,只是每个表中放的内容的类型不一样。




比如table1存放发明专利、table2存放新型专利、table3存放外观专利。




要求按查询条件查询出我想要的专利。 


我是这样做的


select * from table1 where '条件(此处省略)


union



select * from table2 where '条件(此处省略)

select * from table3 where '条件(此处省略)


而现在的要求是,不仅要这些列,还需要多添加一列,专利类型,



即从table1中取出来的数据专利类型为发明,




从table2中取出来的数据专利类型为新型,




从table3中取出来的数据专利类型为外观,



最开始,我想这下要麻烦了。



可能得需要通过程序来实现了,程序实现的思路判断此条记录来自哪个表,然后把专利类型付给相应的值。





总是感觉这种方法太笨。



于是我不想这么做。。。。。。




后来我灵机一动,用sql语句实现了这种功能。




思路是把一个常量作为一个单独的列。




sql 语句为




select *,'发明' as type from table1 where '条件(此处省略)


select *,'新型' as type from table2 where '条件(此处省略)

union




select *,'外观' as type from table3 where '条件(此处省略)


问题解决。高兴,一开始我没有加单引号,经过几次尝试。我终于得到了我想要的结果,非常高兴。




我不知道,我的语言是否得当。还希望大家多指正。

2008-7-28 13:36 cold0708
ddddddddddddd

页: [1]


Powered by Discuz!  Archiver   © 2001-2006 Comsenz Inc.