根据可用性条件从两个表中选择字段

时间:2017-06-29 08:45:23

标签: sql db2

我想创建一个视图,该视图将根据条件返回字段:如果表1中的数据可用,则从表1中检索数据,否则从表2中检索

用例:

select name, age, date
from table 1
where date = x

如果表1中的数据没有date = x,那么 选择姓名,年龄,日期  从表2中可以看出日期= x

视图应该如此。

在案例状态t

中是否有一个wal(select *)

2 个答案:

答案 0 :(得分:0)

像这样的东西

Select name, age, date from table 1 where date = x
Union All
Select name, age, date from table 2 where date = x
Where Not Exists (select 1 from table 1 where date = x)

答案 1 :(得分:0)

我相信你看起来像这样。下面我尝试了一个可重新运行的查询,如果Table1没有行,它将从Table2获取数据。

CREATE TABLE TABLE1
(NAME VARCHAR(50), AGE INT, DATE1 DATE)

CREATE TABLE TABLE2
(NAME VARCHAR(50), AGE INT, DATE1 DATE)

INSERT INTO TABLE2 VALUES('NAME1', 10, '01-JAN-2017')

CREATE VIEW vw AS
SELECT NAME, AGE, DATE1 FROM TABLE1 WHERE DATE1 = '01-JAN-2017'--if condition
UNION
SELECT NAME, AGE, DATE1 FROM TABLE2 WHERE NOT EXISTS(SELECT 1 FROM TABLE1 WHERE DATE1 = '01-JAN-2017') -- else condition

当Table1为空时,您的View将从Table2中获得结果

 SELECT * FROM vw;