DB2编程序技巧(二)

来源:百度文库 编辑:神马文学网 时间:2024/04/29 13:38:11

1.6   类似charindex查找字符在字串中的位置
          Locate(‘y’,’dfdasfay’)
          查找’y’ 在’dfdasfay’中的位置。

1.7   类似datedif计算两个日期的相差天数
        days(date(‘2001-06-05’)) – days(date(‘2001-04-01’))
         days 返回的是从   0001-01-01 开始计算的天数


1.8   写UDF的例子
C写见sqllib\samples\cli\udfsrv.c

1.9     创建含identity值(即自动生成的ID)的表
           建这样的表的写法
           CREATE TABLE test
           (t1 SMALLINT NOT NULL
           GENERATED ALWAYS AS IDENTITY
           (START WITH 500, INCREMENT BY 1),
           t2 CHAR(1));
           在一个表中只允许有一个identity的column.

1.10     预防字段空值的处理
            SELECT DEPTNO ,DEPTNAME ,COALESCE(MGRNO ,'ABSENT'),ADMRDEPT
             FROM DEPARTMENT
              COALESCE函数返回()中表达式列表中第一个不为空的表达式,可以带多个表达式。
             和oracle的isnull类似,但isnull好象只能两个表达式。
     

1.11    取得处理的记录数
             declare v_count int;
            update tb_test set t1=’0’
            where t2=’2’;
            --检查修改的行数,判断指定的记录是否存在
            get diagnostics v_ count=ROW_COUNT;     
            只对update,insert,delete起作用. 不对select into 有效