创建 Netezza VIEW 时使用临时变量

Using temporary variable when creating a Netezza VIEW

这是我想创建的一个简单视图,但我希望最终视图中只有四列:a、b、c、e。我想定义 d 以临时用于确定 e 的值,但我不希望 d 成为结果视图的一部分。

create view v as
select a, b, c, a+b+c as d, 
case when d > 1000 then 1
     when d > 100 then 2
     when d > 10 then 3
     else 4 END as e
from tbl;

在 Netezza SQL 中有什么方法可以定义这样一个临时值吗?

在这个简单的例子中,当然我每次都可以用 "when a+b+c" 替换我的每个 "when d" 语句,但我的真实场景比这里说明的要复杂。

您可以使用子查询:

create view v as
    select a, b, c,  
           (case when d > 1000 then 1
                 when d > 100 then 2
                 when d > 10 then 3
                 else 4 
            end) as e
        from (select tbl.*, (a + b + c) as d
              from tbl
             ) t;