A.alter命令相关:
1、更换列名,增加列,修改列类型,更换表名
ALTER TABLE (表名) ADD (列名 数据类型);
ALTER TABLE (表名) RENAME (列名) TO (新列名);
ALTER TABLE (表名) MODIFY (列名 数据类型);
ALTER TABLE (当前表名) RENAME TO (新表名);
2、更换表空间,索引空间
alter table (tablename) move tablespace (spacename);
alter index (indexname) rebuild tablespace (spacename);
3、增加分区,删除分区,删除分区数据
alter table [tname] add partition [parname] values('') tablespace [spname]; (列表分区类型,由于分区字段已经在建表时指定,此处仅指定对应值
值域分区的情况要考虑到边界分区的情况,可以采用对边界分区split 的形式进行添加:
alter table custaddr split partition p_other values('552') into (partition t_list552 tablespace icd_service, partition p_other tablespace icd_service);
表已更改。
--注意这里红色的地方,如果是Range类型的,使用at,List使用Values。
详细参考
http://blog.csdn.net/hijiankang/article/details/9173877
删除分区使用
alter table [tname] drop partition (pname);
对分区数据进行删除使用
alter table [tname] truncate partition (pname);
4、增加约束
使用alter table [tname] add constraint [constraint type](....)
如 alter table student add constraint primary key (id);
alter table student add constraint primary key (id,name); --联合主键
其他还有外键,唯一,非空等。
B.
ROW_NUMBER()OVER(PARTITION BY AC_ID ORDER BY NAME ASC) RN 返回排序值
其中partition by 后接分类值,类似group by
C.CASE WHEN
可用于指定变量的条件值判断,或多个值多种条件联合判断(使用前注意逻辑包含关系)
CASE B22.DATA_CODE WHEN '0152' THEN '1'
WHEN '0155' THEN '2'
ELSE '3' END
--指定条件变量
或
CASE WHEN LN_TX_TYPE ='1' THEN '1'
WHEN LN_TX_TYPE IN ('2','4') THEN '2'
ELSE '3'
END TX_TYPE
--多条件
D.杂项的杂项
nvl函数:nvl(arg,value)代表如果前面的arg的值为null那么返回的值为后面的value
to_char对小于1的数转换时会产生.234的情况,需要另外处理
如使用case when:
case substr(var,1,1) when '.' then '0'|| var
else var end
返回对此处理的结果。