我想创建一个视图,该视图将根据条件返回字段:如果表1中的数据可用,则从表1中检索数据,否则从表2中检索
用例:
select name, age, date
from table 1
where date = x
如果表1中的数据没有date = x,那么 选择姓名,年龄,日期 从表2中可以看出日期= x
视图应该如此。
在案例状态t
中是否有一个wal(select *)答案 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;