7007 发表于 2016-11-13 06:21:02

DB2常用语句

一、sequence:
1.创建  

CREATE SEQUENCEseqname
AS bigint
START WITH 1
INCREMENT BY 1
NO MAXVALUE
CYCLE
NO CACHE;

 
2.使用 

--查询当前的id
values prevval for seqname;
--产生下一个id
values nextval for seqname;
--插入记录
insert into tabname(id) values
( nextval for seqname)
--删除sequence
drop sequence seqname
--重新计数
alter sequence seqname restart with 5
 
二、.查询合并行 引用链接:http://hi.baidu.com/vr2rv/item/2abed11d5045a5eb9c778af1
  表记录如下:
  ID,   ADDR
  1,    上海市某某路
  1,    南京市某某路
   
  合并后的记录如下:
  ID,   ADDR
  1,    上海市某某路,南京市某某路
   
  1、ORACLE10g可使用的方法

SELECT ID, WMSYS.WM_CONCAT(ADDR) ADDR
FROMTABLENAME
GROUP BY ID

   2、DB2可使用的方法 

SELECT ID,VARCHAR(REPLACE(REPLACE(XML2CLOB(XMLAGG(XMLELEMENT(NAME A,ADDR||','))),'<A>',''),'</A>',' ')) AS ADDR
FROM TABLENAME GROUP BY ID

   
  三、分组后,取各组的前n条记录
  1.查询每个部门的最高工资

select deptno,ename,sal from
(select deptno,ename,sal,row_number() over (partition by deptno order by sal desc) as sal_order
from scott.emp) where sal_order <2;
   参考链接:http://blog.csdn.net/wangjiang87/article/details/5391609
   
  四、db2数据库load数据命令导致表空间暂挂状态
       当对db2数据库进行load操作后有时候会导致数据库不能进行update、delete、insert等操作,提示“tablespace not allowed”,这是因为load命令会导致表空间暂挂,使得不能进行出select之外的操作。
       load不加nonrecoverable可能导致table space变为backup pending状态,联机或者脱机,此时备份表空间即可:db2 "backup db bcudb tablespace (USERSPACE1) [ online ] to /dev/null without prompting"。
        参考链接:http://www.tuicool.com/articles/jmYVV3。
  五、db2常用错误集锦
         参考链接:DB2错误信息(按sqlcode排序)。
页: [1]
查看完整版本: DB2常用语句