要显示PostgreSQL表达式的类型,可以使用内置函数pg_typeof()。 pg_typeof()函数接受一个表达式作为参数,并返回该表达式的数据类型。以下是使用pg_typeof()函数显示表达式类型的示例: 代码语言:sql 复制 SELECT pg_typeof('Hello World'); -- 返回text类型 SELECT pg_typeof(42); -- 返回integer类型 SELECT pg...
在PostgreSQL 16之前,如果想要测试一个字段是不是JSON,通常会使用pg_typeof: postgres=# SELECT postgres-# pg_typeof(info), postgres-# pg_typeof(info ->> 'address') postgres-# FROM postgres-# car_info LIMIT 1; pg_typeof | pg_typeof ---+--- jsonb | text (1 row) 可以看到,上面的SQL...
array_agg(id) AS "INT数据转数组", pg_typeof(array_agg(id)) AS "INT数据转数组后的类型", array_agg(mobile) AS "VARCHAR数据转数组", pg_typeof(array_agg(mobile)) AS "INT数据转数组后的类型", json_agg(id) AS "INT数据转JSON数组", json_agg(mobile) AS "VARCHAR数据转JSON数组" FROM ...
使用数据类型函数:PostgreSQL提供了一些函数来获取数据类型的信息。例如,可以使用pg_typeof函数来获取表达式的数据类型。例如,可以使用以下查询语句来获取表中某个列的数据类型: 使用信息模式查询:可以使用信息模式查询来获取数据库对象的信息,包括数据类型。例如,可以使用以下查询语句来获取表中列的数据类型: ...
如何识别函数内任何元素的数据类型? CREATE OR REPLACE FUNCTION test1(par1 int,**par2 anyelement**) RETURNS BOOL AS $$ DECLARE rc bool := true; BEGIN -- ? RETURN rc; END; $$ LANGUAGE plpgsql; 解决方案: 使用pg_typeof(任意): create or replace function test(par anyelement) returns ...
from pg_locks a, pg_stat_activity b -- select pg_typeof(pid) from pg_stat_activity where a.pid=b.pid and a.granted ) r where 1=1 and r.locktype is not distinct from w.locktype and r.database is not distinct from w.database ...
clock_timestamp() 和 返回实时时间值的函数, 它们的返回值会在事务中随时间的前进而变化,和 oracle 的sysdate 都是返回实时时间。 pgsql 对 date 和 time 数据类型区分比较明确。 selectpg_typeof(clock_timestamp());-[ RECORD1]---pg_typeof|timestampwithtimezoneselectclock_timestamp(), clock_timesta...
postgres=#selectpg_typeof(1),pg_typeof('1');-[RECORD 1]---pg_typeof|integerpg_typeof|unknown 有意思吧,pg_typeof(‘1’) 居然是 unknown, 而我们把它想象成字符串了。 postgres=#select1isnotdistinctfromcast('1'asvarchar); ERROR
-- 虽然pg中null和''都被诊断为unkown,但是内部处理貌似仍然不同 zjh@postgres=# select pg_typeof(''); pg_typeof --- unknown (1 row) zjh@postgres=# select pg_typeof(null); pg_typeof --- unknown (1 row) 1. 2. 3. 4. 5. 6...
select pg_typeof(test_id) as test_id, pg_typeof(test_vc) as test_vc, pg_typeof(test_n) as test_n, pg_typeof(big_n) as big_n, pg_typeof(ip_addr) as ip_addr from test; test_id | test_vc | test_n | big_n | ip_addr ---+---+---+---+--- test_domain | cha...