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()
值。旧行没有任何变化。
如果我运行
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()
值。旧行没有任何变化。