postgresql INSERT SELECT COS(另一个字段)查询的NULL值

时间:2017-01-11 11:10:55

标签: sql math trigonometry postgresql-9.3

如果我跑

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

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

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

表格定义为:

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函数会返回结果,但是它们无法插入到另一个字段中?

1 个答案:

答案 0 :(得分:1)

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

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

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