postgresql常用的SQL语句

更改字段类型 :

ALTER TABLE layer ALTER COLUMN ad_code TYPE VARCHAR (50);

更改表名 :

alter table 表名 rename to 新表名

更改字段名

alter table 表名 rename 字段名 to 新字段名

更改字段类型为bigint:

ALTER TABLE layer ALTER COLUMN ad_code
SET DATA TYPE BIGINT USING ad_code :: BIGINT

CASE WHEN 使用 :

update layer set ph_level =(
CASE
WHEN ph>8.5 then 1
when ph>=7.5 and ph <=8.5 then 2
when ph>=6.5 and ph <=7.5 then 3
when ph>=5.5 and ph <=6.5 then 4
when ph>=4.5 and ph <=5.5 then 5
when ph <=4.5 then 6
END
)
where "id" ="id";

循环插入其他表内数据:

INSERT INTO layer (ID, geom) SELECT
	topology.layer. ID,
	topology.layer.geom
FROM
	topology.layer
WHERE
	ID = ID;

在删除一个表时,如果该表的主键是另一个表的外键,如果不用cascade关键字就会报错:

drop table dict_loc_type; 
-- drop table dict_loc_type ORA-02449: 表中的唯一/主键被外键引用

-- 使用cascade关键字,表被成功删除:
drop table dict_loc_type cascade constraints;
-- Table dropped

使用flashback语句可以恢复被删除的表,但是被删除的外键无法恢复:

flashback table dict_loc_type to before drop;
-- DROP TABLE layer_yjfscqy CASCADE;

获取分组后每组前2条记录数据:

-- ROW_NUMBER()为返回的记录定义个行编号
-- PARTITION BY ad_code 是根据ad_code 分组 
SELECT
 *
FROM (
  SELECT
    ROW_NUMBER() OVER (PARTITION BY ad_code ORDER BY statics_year DESC) AS r,
    t.*
  FROM
    gdxgdk_statics t
) x
WHERE
  x.r <= 2 AND x.up_ad_code = 530300 --筛选条件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值