DB2常用语句

一、sequence:
1.创建  

CREATE SEQUENCE  seqname
       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 
FROM  TABLENAME 
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排序)

你可能感兴趣的:(db2,sequence)