插入以选择不同的空PostgreSQL

时间:2019-07-01 14:16:29

标签: sql postgresql

我在以下方面遇到问题:

create table tab1 (col1 double precision, col2 double precision)
Insert into tab1 
select distinct col1, null 
from tab1

我无法执行此操作,因为错误列“ col2”的类型为double precision,而表达式的类型为text

但这没有错误:

Insert into tab1 
select col1, null 
from tab1 

为什么我有一个错误但没有错误?

1 个答案:

答案 0 :(得分:2)

DISTINCT是作为哈希汇总或通过排序计算的,并且两个操作都需要确定第二列的类型(最初为unknown

因此,根据rules for determining the type of output columns,PostgreSQL将在这种情况下将NULL解析为text

您可以使用显式类型强制转换轻松地覆盖它。