如何显示postgresql表达式类型?

Ste*_*kin 6 postgresql

我想显示任何表达式类型名称.像python中的'type'函数.

有点像这样工作:

select type(1);
'int'

select type(ROW(1, 'abc'));
'row(int, text)'

select type(select * from t1);
'setof t1'
Run Code Online (Sandbox Code Playgroud)

在postgresql中有这样的东西吗?

a_h*_*ame 10

它被称为pg_typeof()虽然它不是你想要的

select pg_typeof(1), ROW(1, 'abc');
Run Code Online (Sandbox Code Playgroud)

返回

pg_typeof | row    
----------+--------
integer   | (1,abc)
Run Code Online (Sandbox Code Playgroud)

然而pg_typeof(select * from t1),您不能使用,甚至不能使用 ,limit 1因为函数需要单个表达式作为其输入,而不是多个列.你可以这样做:pg_typeof((select some_column from t1))