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 '条件(此处省略)
问题解决。高兴,一开始我没有加单引号,经过几次尝试。我终于得到了我想要的结果,非常高兴。
我不知道,我的语言是否得当。还希望大家多指正。