【20150622】杂项整理

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类型的,使用atList使用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

返回对此处理的结果。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章