我有一个查询,重复使用相同的代码片段,我称之为foo()
,就好像该函数存在一样:
SELECT
foo(a),
BUILTIN(foo(a))
FROM
foobar
GROUP BY
foo(a)
HAVING
BUILTIN(foo(a)) > bar()
ORDER BY
foo(a)
;
通常情况下,我很久以前就已经创建了这个函数foo
- 我在编辑器中实际看到的是内置函数的混乱嵌套几次。
但是 - 我不能CREATE
我的好foo
,因为我只拥有USAGE
权限。
我是否有办法创建某种“别名”,这样每当我说foo
时,就会执行更长的功能;但这当然不适用于任何其他数据库用户?
答案 0 :(得分:2)
对于示例,您在子查询中发布了计算foo(a)
:
select foo_a, builtin(foo_a)
from (
select foo(a) as foo_a
from foobar
) s
group by 1
having builtin(foo_a) > bar()
order by 1
;