我目前正在编写一个 SQL 查询,它首先使用 WITH 运算符和 SELECT 语句创建大量临时表,然后在最后连接所有临时语句。
我创建临时表的所有 SELECT 语句都依赖于某些过滤器......所以我的查询看起来有点像
WITH
table_1 as (
SELECT product_id
avg(price)
FROM daily_sales
WHERE product_category = 1
AND sell_date BETWEEN TO_DATE('2012/01/07','YYYY/DD/MM') AND TO_DATE('2012/30/09','YYYY/DD/MM')
GROUP BY ds.product_id
),
table_2 as (....
),
SELECT FROM table_1 JOIN table_2....
我想针对“sell_date”(日期或字符串)的范围和“product_category”(整数值)的不同值运行此查询。
目前,我正在手动替换这些,但我想知道是否可以声明用我在查询顶部设置的变量替换这些硬编码值。
我知道这可能以前被问过 - 但我很困惑,因为有多种解决方案取决于您使用的 SQL 的确切版本和您声明的变量类型。
在这种情况下,我正在寻找一种适用于 Oracle SQL 的解决方案,并且我可以在其中指定类型变量。