在 PL/SQL 中为查询的一部分声明语句

用户1010441

我有如下查询:

select t1.varid, t1.var1, t1.var2, t1.vardata, t2.varid, t2.var1, t2,.var2 
from   table1 t1, table2 t2
where  t1.varid = t2.varid
and    t1.vardata between to_date('20170807','YYYYMMDD') and to_date('20170808','YYYYMMDD')

现在的问题是:我不仅需要在上面查询中指定的数据范围内提取数据,而且我还想在同一个查询中提取许多其他范围。

为此,我使用了UNION ALL它并且它有效。问题是我必须多次重写这部分:

select t1.varid, t1.var1, t1.var2, t1.vardata, t2.varid, t2.var1, t2, var2 
from   table1 t1, table2 t2
where  t1.varid = t2.varid

是否有关于如何定义select t1.varid...为命名变量以避免冗长乏味的重复查询的提示?

欢迎任何其他解决方案。

XING

正如聊天中所讨论的,您可以按照以下方式进行操作:

SELECT t1.varid  as col1,
       t1.var1   as col2,
       t1.var2,
       t1.vardata,
       t2.varid,
       t2.var1,
       t2,
       .var2
  FROM table1 t1, table2 t2
 WHERE     t1.varid = t2.varid
       AND t1.vardata BETWEEN TO_DATE ('20170807', 'YYYYMMDD')
                          AND TO_DATE ('20170808', 'YYYYMMDD')
        --- Give date ranges.                  
       OR   t1.vardata BETWEEN TO_DATE ('20170907', 'YYYYMMDD')
                          AND TO_DATE ('20171008', 'YYYYMMDD')                  
       OR ....
       OR ....

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章