如何选择两条带有if条件的sql语句之一

如何选择两条带有if条件的sql语句之一,sql,oracle,Sql,Oracle,我每年有两个SQL语句。现在,我正试图选择其中一个有这种情况,但我无法处理。我想要的结果的伪代码是这样的 begin if p_year<2016 then select ..... else select ..... end if 在WHERE子句中使用UNION ALL和两个互斥筛选器: 在WHERE子句中使用UNION ALL和两个互斥筛选器: 这两个选择是否相似?您的意思是:当p_年

我每年有两个SQL语句。现在,我正试图选择其中一个有这种情况,但我无法处理。我想要的结果的伪代码是这样的

begin
if p_year<2016
then 
select .....
else
select .....
end if
在WHERE子句中使用UNION ALL和两个互斥筛选器:

在WHERE子句中使用UNION ALL和两个互斥筛选器:


这两个选择是否相似?您的意思是:当p_年<2016年时选择案例,然后从您的_表中选择“x”或“y”?谢谢您的回答。是的,他们给出了完全相同的结果:一个名称和一个值。嗨,奥托,谢谢你的回答。我有两个不同的sql语句,它们提供相同类型的数据,我希望选择其中一个具有年份条件的语句。这两个选择是否彼此相似?您的意思是:当p_year<2016时选择CASE,然后从您的_表中选择“x”或“y”?谢谢您的回答。是的,他们给出了完全相同的结果:一个名称和一个值。嗨,奥托,谢谢你的回答。我有两个不同的sql语句,它们提供相同类型的数据。我希望选择其中一个具有年份条件的语句。谢谢你的回答,这对我很有用,但我想问,是否有任何方法可以实现我的要求。not union选择了一个具有条件的select语句在sql中无法执行IF/ELSE来运行不同的查询。有很多方法可以做到这一点,但它们需要存储过程或其他编程干预谢谢你的回答这对我来说很有效,但我想问一下,是否有任何方法可以实现我想要的。非union选择了带有条件的select语句中的一个。如果要在SQL中运行不同的查询,没有执行IF/ELSE的方法。有很多方法可以做到这一点,但它们需要存储过程或其他编程干预
SELECT name, value
FROM   table1
WHERE  p_year < 2016
UNION ALL
SELECT name, value
FROM   table2
WHERE  p_year >= 2016