1
我想在查询中传递一些变量,并需要在Spotfire等报表工具中使用结果集。teradata中的参数视图
select prod_id,sum(sal)
from cal c
where qtr_num in (:q)
group by 1
having sum(sal)>0;
:Q可以是单一的值( 'Q1')或多个值( 'Q1', 'Q2', 'Q3', 'Q4')为好。
我知道我们可以使用宏作为参数视图。但我们不能在选择部件/报告工具中使用该宏返回的结果集。
其他选项是创建没有过滤器的视图,然后在参数过滤器中使用该视图。
create view v
as
(select prod_id,sum(sal)
from cal c
group by 1
having sum(sal)>0);
select *
from v
where qtr_num in (:q);
但这种方法可能会跳过分区访问(创建于qtr_num)和低效的方式来查询我的意见。此查询仅用于演示目的。实际查询比这复杂得多。
有没有办法在teradata中实现这一点?
我正在修补一个使用strtok_split_to_table的方法,可能会工作,但它导致了我的系统crashdump ...所以我会建议反对。 – JNevill