在postgres中,有一个函数pg_typeof将给出字段的类型。示例:
-- Original query
select name, age, descriptions from things LIMIT 1;
-- Meta query
select pg_typeof(name), pg_typeof(age), pg_typeof(descriptions) from things LIMIT 1;
pg_typeof | pg_typeof | pg_typeof
-------------------+-----------+-----------
cha
我试图使用copy将一个大型csv文件复制到postgres表中。
某个整数列主要为null。在csv文件中,该列只有"“。
每一列都被引用,这似乎不是其他专栏的问题。
当我试图复制它时,我会得到这个错误:
ERROR: invalid input syntax for integer: ""
我尝试在复制语句中将空子句设置为'‘和"“。'‘什么也不做,"“生成一个错误:
zero-length delimited identifier at or near """"
我尝试使用sed将所有"“更
我想对一个表进行更新,而更新的列依赖于一个条件。我已经知道如何创建条件WHERE子句,如下所示:
UPDATE table SET colA='apple', colB='banana' WHERE colC='fruits
但是,我想将更新建立在一个条件上,这样如果条件为false,则只有colA将更新。达到以下程度的东西:
UPDATE table SET colA='apple', (if $1=true colB='banana') WHERE colC='fruits
我找到的唯一资源与第一个示例有关。在
我试图在Redshift DB (Postgres SQL)中创建一个查询,以执行以下操作:
我有一些列,我正在检查质量控制,每一列都需要NULL和NOT NULL的百分比。我希望我的输出看起来像这样,下面显示了总数,但如果可能的话,在%中需要它。如何编写此查询?
Column NOT NULL NULL Total Records Percentage NULL
--------- ------- ------ ---------------- ---------------------
Column A 78
在一个简单的比较测试中,postgres 9.1和8.4得到了以下奇怪的结果。
postgres=# select 1 one where 'A' < 'a';
one
-----
(0 rows) // ..... I would have expected 1 row
postgres=# select 1 one where 'A' < 'b';
one
-----
1
(1 row) // ...... this looks OK
postgres=# select 1 one w
我有一个CSV文件file.csv。
在Postgres中,我制作了一个名为grants的表
CREATE TABLE grants
(
)
WITH (
OIDS=FALSE
);
ALTER TABLE grants
OWNER TO postgres;
我想导入file.csv数据,而不必在Postgres中指定列。
但是如果我运行COPY grants FROM '/PATH/TO/grants.csv' CSV HEADER;,我会得到一个错误:ERROR: extra data after last expected column。
如何导入CSV数据而
我可以使用CASE选择在SELECT查询(Postgres)中显示哪些列,如下所示:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
在Postgres中执行UPDATE查询时(即选择应该更新哪些列),是否有类似的情况?我认为没有,因为我找不到这方面的任何东西,但是也许有人有一个聪明的选择(除了使用一个过程或使用一个CASE更新每个列以确定该列的值是否应该被分配到一个新值或简单地重新分配现有的值)。
我最近注意到Postgres在使用唯一约束处理列中的NULL时出现了不一致的情况。
考虑一张人员表:
create table People (
pid int not null,
name text not null,
SSN text unique,
primary key (pid)
);
SSN列应该保持唯一。我们可以检查一下:
-- Add a row.
insert into People(pid, name, SSN)
values(0, 'Bob', '123');
-- Test the unique constra