Pad*_*mez 11 sql postgresql union types casting
PostgreSQL上有一个错误,它给我的一个select语句.我在网上搜索了一个答案然后空手而归.另一个问题给出的答案不符合我的问题.
Run Code Online (Sandbox Code Playgroud)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)
Run Code Online (Sandbox Code Playgroud)
这样做的目的是指定行在一个点上的位置.该字符串是行的名称.这是我想要的输出:
Rowname Data
string 53
string2 87
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个错误?
Erw*_*ter 16
你的陈述有几个问题.但错误消息暗示您需要显式强制转换来声明字符串文字的(但未知)数据类型'string':
SELECT text 'string' AS rowname, data FROM tbl1
UNION ALL
SELECT 'string2', data FROM tbl2
Run Code Online (Sandbox Code Playgroud)
这仅适用于SELECT查询的第一个SELECT .后来的腿已经知道每列的名称和类型.
在其他上下文(例如UNION)中,Postgres可以从目标列派生数据类型,并尝试自动强制转换为正确的数据类型.