如何在 PostgreSQL 中为 CTE(公用表表达式)指定列类型?

编程入门 行业动态 更新时间:2024-10-27 20:30:46
本文介绍了如何在 PostgreSQL 中为 CTE(公用表表达式)指定列类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

考虑

WITH t (f0, f1) as ( values (1, 10), (2, 20) )...

如何指定 f0 和 f1 是 bigint 类型?

How do I specify that f0 and f1 are of type bigint?

推荐答案

我认为你必须在你的情况下在 VALUES 表达式中指定类型:

I think you'd have to specify the types inside the VALUES expression in your case:

WITH t (f0, f1) as ( values (1::bigint, 10::bigint), (2, 20) )...

你只需要第一组值的类型,PostgreSQL 可以推断出其余的.

You only need the types on the first set of values, PostgreSQL can infer the rest.

例如,假设我们有两个函数:

For example, suppose we have two functions:

create function f(bigint, bigint) returns bigint as $$ begin raise notice 'bigint'; return $1 * $2; end; $$ language plpgsql; create function f(int, int) returns int as $$ begin raise notice 'int'; return $1 * $2; end; $$ language plpgsql;

然后

WITH t (f0, f1) as ( values (1, 10), (2, 20) ) select f(f0, f1) from t;

会给你两个 int 通知而

WITH t (f0, f1) as ( values (1::bigint, 10::bigint), (2, 20) ) select f(f0, f1) from t;

会给你两个 bigint 通知.

更多推荐

如何在 PostgreSQL 中为 CTE(公用表表达式)指定列类型?

本文发布于:2023-10-24 08:21:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1523428.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:中为   类型   如何在   PostgreSQL   CTE

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!