在 postgres 中,当我尝试合并两个表时出现错误,其中一个表的列 ( Amount) 包含double precision数据类型,而另一个表没有匹配的列,我希望该表中的记录只是有NULL在该Amount领域。
错误:
“联合类型文本和双精度不能匹配 postgres”
伪代码:
SELECT * FROM (
SELECT
t1.Amount AS 'amount',
NULL::DATE AS 'date'
FROM Table1 AS t1
UNION ALL
SELECT
/* next line is the issue */
NULL AS 'amount',
t2.Date AS 'date'
FROM Table2 AS t2
) AS FOO
Run Code Online (Sandbox Code Playgroud)
我相当肯定这个解决方案是一个简单的铸造问题,但从搜索中找不到任何东西。我如何NULL::DOUBLE在 postgres 中执行等效操作?
编辑::后代
来自@klin 和@a_horse_with_no_name 的评论中接受的答案指向“历史”postgres 转换表达式::,其中语法等效:
CAST ( expression AS type )
expression::type
Run Code Online (Sandbox Code Playgroud)
而且,这里是postgres 数据类型的列表。
在 Postgres 中,该类型double precision也称为float8或 简称float。使用其中之一。
select null::double precision, null::float;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5290 次 |
| 最近记录: |