在Oracle查询中有效地使用函数

时间:2016-05-03 21:20:05

标签: sql oracle

如果我在Oracle中有一堆嵌套但重复的函数,如:

trim('0' from trim(' ' from address))

是否有某种方法可以缓存/命名{{1}}的结果,以便我不会一遍又一遍地运行它?

3 个答案:

答案 0 :(得分:2)

这样的事情:

With temp as (
select trim('0' from trim(' ' from address)) col1 from customers
)
Select * from temp
Where col1 <> '1234 MAIN ST' and
         col1 <> '1234 WOOD ST'

答案 1 :(得分:1)

使用内联视图创建带别名的列,然后在外部查询中引用该别名:

select trimmed_address
from
(
    select trim('0' from trim(' ' from address)) trimmed_address
    from customers
)
where trimmed_address not in ('1234 MAIN ST', '1234 WOOD ST');

答案 2 :(得分:0)

您可以这样重写查询:

#div2 { display:none; }
#checkbox:checked ~ #div1 { display:none; }
#checkbox:checked ~ #div2 { display:block; }