在PostgreSQL上,我的一条选择语句中给出了一个错误。我在网上搜索了一个答案,然后空手而归。在另一个问题中给出的答案不适合我的问题。
ERROR: failed to find conversion function from unknown to text ********** Error ********** ERROR: failed to find conversion function from unknown to text SQL state: XX000
我的查询看起来像这样:
Select * from (select 'string' as Rowname, Data From table) Union all (select 'string2' as Rowname, Data From table)
这样做的目的是指定该行在某一点处的位置。字符串是行的名称。这是我想要的输出:
Rowname Data string 53 string2 87
有什么办法可以解决此错误?
您的陈述有两个问题。但是错误消息暗示您需要 显式强制转换 来声明字符串文字的(至今未知)数据类型'string':
'string'
SELECT text 'string' AS rowname, data FROM tbl1 UNION ALL SELECT 'string2', data FROM tbl2
强制SELECT执行UNION查询之一就足够了。通常是第一个,其中还要确定列名称。随后SELECT具有未知类型的列表将排在一行。
SELECT
UNION
在其他情况下(如VALUES附加到的子句INSERT),Postgres从目标列派生数据类型,并尝试自动强制为正确的类型。
VALUES
INSERT