创建 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;
这是我想创建的一个简单视图,但我希望最终视图中只有四列: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;