DB2-DML SQL学习
SELECT INTO
用于将查询出的数据赋值给变量。注意查询出来的数据最多只能有一条。
DECLARE V_ID CHAR(8); -- 产品到期时间
DECLARE V_NAME VARCHAR(20); -- 产品到期时间
SELECT
id, name INTO V_ID, V_NAME
FROM employee
FETCH FIRST 1 ROWS ONLY;
注:只能在存储过程中执行,否则会报错。
CASE
用于验证数据或数据筛选。
用法1:
SELECT 字段1,字段2,
CASE 字段3
WHEN '01' THEN 'Jan'
WHEN '02' THEN 'Feb'
END
FROM 表
用法2:
SELECT
lastName AS 姓名,
CASE
WHEN sex = 'F' THEN '男性'
WHEN sex = 'M' THEN '女性'
ELSE NULL
END AS 性别
FROM employee
CURSOR的使用
CURSOR有两个作用一个是用于返回结果集,另一个作用为用于循环处理。
DB2 日期处理
– 字符串转日期
实用to_date,直接例子如下:
VALUES to_date('201705','yyyymm')
– 日期转字符串
TO_CHAR()把时间转换成指定格式的字符串类型(db2较低版本不支持)。
“YYYY-MM-DD HH:MI:SS” 十二小时制;“YYYY-MM-DD HH24:MI:SS” 二十四小时制。
(“YYYY-MM-DD hh:mm:ss”不会报错,但是mm值取的是月的值。)
例子如下:
select to_char(current timestamp,'yyyy-mm-dd hh24:mi:ss') from sysibm.dual;
其他一些杂项
- 字符串拼接
使用||或者CONCAT()函数,例子如下:
VALUES 1 || 2
结果为:
12
- 查找某个时间段的纪录
SELECT *
FROM a
WHERE a.riqi BETWEEN DATE('2015-09-02') AND DATE('2015-09-15') --数据日期范围