日期:2014-05-20  浏览次数:20679 次

SQL
现在有2个表 一个是price1表 一个是price2表,2个表都有code字段和price字段
现在传入一堆code,查询方式是这样 先在price1表查询没存在记录的话则在price2表查询
那怎么写该存储过程
比如传入code为("1","3","5")
那么假设price1表只有两条记录 code = 1 price = 56,code = 5, price = 50
price2表只有两条记录 code = 3, price = 60. 和 code = 5,price = 70
则查询出来的结果应该是
code price
1 56
3 60
5 50

------解决方案--------------------
SELECT code,price FROM price1 WHERE code in('1','3','5')
 UNION ALL
 SELECT code,price FROM price2 WHERE code in('1','3','5') AND NOT EXISTS(
SELECT code,price FROM price1 WHERE code in('1','3','5')
 )