在 PL/SQL 中为查询的一部分声明语句
Declare statement in PL/SQL for a part of the query
我有如下查询:
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...
定义为命名变量以避免长时间无聊的重复查询的提示?
欢迎任何其他解决方案。
正如聊天中所讨论的,您可以按照以下方式进行操作:
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 ....
您可以尝试像这样直接从 table 中获取日期,而不是重写重复的语句:
Select '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('''+MY_DATE+''', ''yyyymmdd'')' from tableofdate
下面是模式 used.This 只是 sample.Please 根据您的要求编辑它
create table tableofdate(my_date varchar(100))
insert into tableofdate values ('20170808')
我有如下查询:
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...
定义为命名变量以避免长时间无聊的重复查询的提示?
欢迎任何其他解决方案。
正如聊天中所讨论的,您可以按照以下方式进行操作:
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 ....
您可以尝试像这样直接从 table 中获取日期,而不是重写重复的语句:
Select '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('''+MY_DATE+''', ''yyyymmdd'')' from tableofdate
下面是模式 used.This 只是 sample.Please 根据您的要求编辑它
create table tableofdate(my_date varchar(100))
insert into tableofdate values ('20170808')