如何知道 Redshift 查询返回值的类型?

cda*_*bel 9 sql amazon-redshift

pg_typeof()在 PostgreSQL 中,您可以使用SELECT 语句中的函数来获取 SQL 查询返回值的数据类型。

尽管 Redshift 有 SQL 沿袭,但 Redshift 中不存在此函数。

我想做这个:

SELECT pg_typeof(0.25::numeric(5,2)) ;

并得到:

numeric(5,2)

如何获取 SQL 查询返回值的数据类型?这是为了帮助我对 ETL 开发进行单元测试。

小智 1

不确定是否可以在您的用例中使用,但我使用此查询来获取 Redshift 中的类型

SELECT distinct 
        t.relname as table,
        a.attname as column,
        pg_catalog.format_type(a.atttypid, a.atttypmod) as type
FROM pg_attribute a
    JOIN pg_class t on a.attrelid = t.oid
    JOIN pg_namespace s on t.relnamespace = s.oid
WHERE a.attnum > 0 
    AND NOT a.attisdropped
    AND LENGTH(a.attname) > 1
    AND s.nspname in ({{schemas}})
Run Code Online (Sandbox Code Playgroud)