postgresql 从 SELECT COS(另一个字段)查询中插入 NULL 值

postgresql INSERTs NULL values from SELECT COS(another field) query

如果我运行

SELECT 
(cos(radians(spa.spa_zenithangle)))
FROM generic.spa;

我得到了从 -1 到 1 的合理结果范围。但是如果我 运行 这个插入语句,spa.spa_cos_zenith 字段中的所有结果值都是 NULLs

INSERT INTO generic.spa
(spa_cos_zenith)
SELECT 
(cos(radians(spa.spa_zenithangle)))
FROM generic.spa;

table的定义是:

CREATE TABLE generic.spa (
 spaid INTEGER DEFAULT nextval('generic.spa_id_seq'::regclass) NOT NULL,
 measurementdatetime TIMESTAMP WITHOUT TIME ZONE,
 spa_zenithangle NUMERIC(7,3),
 spa_cos_zenith DOUBLE PRECISION,
 CONSTRAINT spa_pk PRIMARY KEY(spaid)
) 
WITH (oids = false);

有人知道为什么 COS 函数 returns 结果正常但不能插入另一个字段吗?

我怀疑你想要 update,而不是 insert:

UPDATE generic.spa
    SET spa_cos_zenith = cos(radians(spa.spa_zenithangle));

INSERT 插入新行,因此您正在复制这些行。新行中的唯一列是 COS() 值。旧行没有任何变化。