更改字段类型 :
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 --筛选条件