gpt4 book ai didi

sql - 如何以通用方式在 Postgres 中添加空行

转载 作者:行者123 更新时间:2023-11-29 11:25:24 25 4
gpt4 key购买 nike

我想做

select col1, col2 from foo union values (null, null)

但是 null 被赋予默认类型 TEXT,因此我收到错误“UNION 类型 [例如] 整数和文本无法匹配”。在特定情况下,我可以提供 foo 的列类型,但我是以编程方式构建 SQL 语句,如果我不必随身携带列类型信息,那会更好。

有解决办法吗?

最佳答案

您可以使用如下查询查询INFORMATION_SCHEMACOLUMNS:

SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'mytable'

或者您可以使用 PostgreSQL 特定形式:

SELECT attname, atttypid::regtype
FROM pg_attribute
WHERE attrelid = 'public.mytable'::regclass
AND attnum > 0

这将为您提供表格中感兴趣的列的数据类型。有了这个,在您的自动化框架中,您可以生成 UNION 字符串以通过将 NULL 转换为所需的数据类型来添加空行,如下所示:

SELECT col1, col2 FROM foo
UNION ALL VALUES (NULL::VARCHAR, NULL::INTEGER)

可能更重要的问题是为什么要空行?也许您可以在没有这个合成空行的情况下绕过?

关于sql - 如何以通用方式在 Postgres 中添加空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16538281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com