DB2函数大全:类型转换函数、字符串函数等
DB2函数大全:类型转换函数、字符串函数等
DB2 内置的函数真的是很多,要精通每个函数几乎是不可能的,所以本文并不打算介绍每个函数的具体用法,而是提供一个概览,让您了解每个函数的功能,这样,当你感觉你需要某些功能的函数时,再学习它们的具体用法也不迟。
DB2 内置函数大体分为以下几类:
1.聚合函数
2.类型转换函数
3.数学函数
4.字符串函数
5.日期时间函数
6.XML 函数
7.分区函数
8.安全函数
9.其他
下面我们就了解一下每类都有哪些函数,以及这些函数的功能。
一:聚合函数
二:类型转换函数
DB2为每种数据类型都提供了相应的函数,一般情况下它们之间的相互转换是非常简单的,请看下表:
1.函数功能描述
2.SMALLINT 返回 SMALLINT 类型的值
3.INTEGER 返回 INTEGER 类型的值
4.BIGINT 返回 BIGINT 类型的值
5.DECIMAL 返回 DECIMAL 类型的值
6.REAL 返回 REAL 类型的值
7.DOUBLE 返回 DOUBLE 类型的值
8.FLOAT 返回 FLOAT 类型的值
9.CHAR 返回 CHARACTER 类型的值
10.VARCHAR 返回 VARCHAR 类型的值
11.VARCHAR_FORMAT_BIT 将位字符序列格式化为 VARCHAR 类型返回
12.VARCHAR_BIT_FORMAT 将格式化后位字符序列返回到格式化前
13.LONG_VARCHAR 返回 LONG VARCHAR 类型的值
14.CLOB 返回 CLOB 类型的值
15.GRAPHIC 返回 GRAPHIC 类型的值
16.VARGRAPHIC 返回 VARGRAPHIC 类型的值
17.LONG_VARGRAPHIC 返回 LONG VARGRAPHIC 类型的值
18.DBCLOB 返回 DBCLOB 类型的值
19.BLOB 返回 BLOB 类型的值
20.DATE 返回 DATE 类型的值
21.TIME 返回 TIME 类型的值
22.TIMESTAMP 返回 TIMESTAMP 类型的值
三:数学函数
1.函数功能描述
2.ABS,ABSVAL 返回参数的绝对值
3.SIGN 如果参数大于0则返回1,小于0返回-1,等于0返回0
4.RAND 返回0和1之间的随机浮点数
5.MOD 求余数
6.ROUND 返回参数1小数点右边的第参数2位置处开始的四舍五入值
7.TRUNCATE OR TRUNC 从表达式小数点右边的位置开始截断并返回该数
值
8.FLOOR 返回小于或等于参数的最大整数
9.CEILING OR CEIL 返回大于或等于参数的最小的整数值
10.POWER 返回参数1的参数2次幂
11.SQRT 返回该参数的平方根
12.DIGITS 返回参数绝对值的字符串表示
13.MULTIPLY_ALT 返回参数的乘积
14.DEGREES 求角度
15.RADIANS 将度转换为弧度
16.SIN 正弦函数
17.SINH 双曲线正弦函数
18.ASIN 反正弦函数
19.COS 余弦函数
20.COSH 双曲线余弦函数
21.ACOS 反余弦函数
22.TAN 正切函数
23.TANH 双曲线正切函数
24.ATAN 反正切函数
25.ATANH 双曲线反正切函数
26.ATAN2 反正切函数
27.COT 余切函数
28.LN 返回参数的自然对数
29.LOG 返回参数的自然对数
30.LOG10 返回基于10的自然对数
31.EXP 返回参数的指数函数
四:字符串函数
1.函数功能描述
2.ASCII 将字符转化为ASCII码
3.CHR 将ASCII码转化为字符
4.STRIP 删除字符串开始和结尾的空白字符或其他指定的字符
5.TRIM 删除字符串开始和结尾的空白字符或其他指定的字符
6.LTRIM 删除字符串开始的空白字符
7.RTRIM 删除字符串尾部的空白字符
8.LCASE or LOWER 返回字符串的小写
9.UCASE OR UPPER 返回字符串的大写
10.SUBSTR 返回子串
11.SUBSTRING 返回子串
12.LEFT 返回开始的N个字符
13.RIGHT 返回结尾的N个字符
14.POSITION 返回参数2在参数1中的第一次出现的位置
15.POSSTR 返回参数2在参数1中的第一次出现的位置
16.LOCATE 返回参数2在参数1中的第一次出现的位置
17.SPACE 返回由参数指定的长度,包含空格在内的字符串
18.REPEAT 回参数1重复参数2次后的字符串
19.CONCAT 连接两个字符串
20.INSERT 向指定字符串添加字符串
21.REPLACE 替换字符串
22.TRANSLATE 将字符串中的一个或多个字符替换为其他字符
23.CHARACTER_LENGTH 返回字符串的长度
24.OCTET_LENGTH 返回字符串的字节数
25.ENCRYPT 对字符串加密
26.DECRYPT_BIN and DECRYPT_CHARs 对加密后的数据解密
27.GETHINT 返回密码提示
28.GENERATE_UNIQUE 生成唯一字符序列
五:日期时间函数
1.函数功能描述
2.YEAR 返回日期的年部分
3.MONTH 返回日期的月部分
4.DAY 返回日期的日部分
5.HOUR 返回日期的小时部分
6.MINUTE 返回日期的分钟部分
7.SECOND 返回日期的秒部分
8.MICROSECOND 返回日期的微秒部分
9.MONTHNAME 返回日期的月份名称
10.DAYNAME 返回日期的星期名称
11.QUARTER 返回指定日期是第几季度
12.WEEK 返回当前日期是一年的第几周,每周从星期日开始
13.WEEK_ISO 返回当前日期是一年的第几周,每周从星期一开始
14.DAYOFWEEK 返回当前日期是一周的第几天,星期日是1
15.DAYOFWEEK_ISO 返回当前日期是一周的第几天,星期一是1
16.DAYOFYEAR 返回当前日期是一年的第几天
17.DAYS 返回用整数表示的时间,用来求时间间隔
18.JULIAN_DAY 返回从January 1, 4712 B.C(Julian date calendar)到
指定日期的天数
19.MIDNIGHT_SECONDS 返回午夜到指定时间的秒数
20.TIMESTAMPDIFF 返回两个timestamp型日期的时间间隔
21.TIMESTAMP_ISO 返回timestamp类型的日期
22.TO_CHAR 返回日期的字符串表示
23.VARCHAR_FORMAT 将日期格式化为字符串
24.TO_DATE 将字符串转化为日期
25.TIMESTAMP_FORMAT 将字符串格式化为日期
六:XML 函数
七:分区函数
1.函数功能描述
2.DATAPARTITIONNUM 返回数据分区中的序列号
3.DBPARTITIONNUM 返回行的分区号
4.HASHEDVALUE 返回行的 distribution map index (0 to 4095)
八:安全函数
1.函数功能描述
2.SECLABEL 返回未命名的安全标签
3.SECLABEL_BY_NAME 返回具体的安全标签
4.SECLABEL_TO_CHAR 返回标签的所有元素
九:其他
1.函数功能描述
2.COALESCE 将null转化为其他值
3.VALUE 将null转化为其他值
4.NULLIF 如果两个参数相等,则返回null,否则,返回第一个参数
5.HEX 返回一个值的16进制表示
6.LENGTH 返回一个值的长度
7.TABLE_NAME 返回table名
8.TABLE_SCHEMA 返回schema名
9.TYPE_ID 返回数据类型表示
10.TYPE_NAME 返回数据类型名
11.TYPE_SCHEMA 返回schema名
12.DEREF 返回参数类型的实例
13.IDENTITY_VAL_LOCAL 返回最后分配给标识列的值
14.REC2XML 返回XML标记格式的字符串,包含列名和列数据
15.EVENT_MON_STATE 返回某事件监视器的操作状态
16.RAISE_ERROR 抛出错误,可以指定sqlstate和error_message,有点像java
的抛出异常
本月第一天
current date - (day (current date) - 1) days
本月最后一天
current date - (day (current date)) days + 1 month。
db2 字符串匹配函数
db2 字符串匹配函数DB2是一款常用的关系型数据库管理系统,其中包含了许多字符串匹配函数,这些函数可以帮助我们在数据库中进行字符串的匹配、查找和替换等操作。
本文将介绍一些常用的DB2字符串匹配函数,并详细说明它们的用法和功能。
一、LIKE函数LIKE函数是DB2中最常用的字符串匹配函数之一。
它可以用于在数据库中查找满足特定模式的字符串。
LIKE函数的基本语法如下:SELECT 列名 FROM 表名 WHERE 列名 LIKE '模式';其中,模式可以使用通配符来表示特定的字符或字符序列。
通配符包括:- %:表示任意字符序列(包括空字符序列)。
- _:表示任意单个字符。
例如,我们可以使用以下语句查找所有以字母A开头的字符串:SELECT 列名 FROM 表名 WHERE 列名 LIKE 'A%';二、LOCATE函数LOCATE函数可以用于查找子字符串在目标字符串中的位置。
它的基本语法如下:LOCATE(子字符串, 目标字符串, 起始位置);其中,子字符串是要查找的字符串,目标字符串是要在其中查找的字符串,起始位置是查找的起始位置。
如果找到了子字符串,则返回子字符串在目标字符串中的位置;如果未找到,则返回0。
例如,我们可以使用以下语句查找字符串"apple"在目标字符串中的位置:SELECT LOCATE('apple', 列名) FROM 表名;三、SUBSTR函数SUBSTR函数可以用于截取字符串的子字符串。
它的基本语法如下:SUBSTR(字符串, 起始位置, 长度);其中,字符串是要截取的字符串,起始位置是截取的起始位置,长度是要截取的子字符串的长度。
例如,我们可以使用以下语句截取字符串"apple"的前三个字符:SELECT SUBSTR('apple', 1, 3) FROM 表名;四、CONCAT函数CONCAT函数可以用于连接多个字符串。
db2数字转字符串函数
db2数字转字符串函数DB2数字转字符串函数是一种用于将数字类型的数据转换为字符串类型的函数,在DB2数据库中常用于数据处理和查询操作中。
本文将详细介绍DB2数字转字符串函数的使用方法和注意事项,以帮助读者更好地理解和应用该函数。
一、函数概述在DB2中,数字转字符串函数主要有两种:CHAR和VARCHAR。
这两个函数的作用是将数字类型的数据转换为字符串类型的数据,并可以指定字符串的长度和格式。
下面分别介绍这两个函数的使用方法和具体示例。
1. CHAR函数CHAR函数是DB2中常用的一个数字转字符串函数,其基本语法如下:CHAR(数字列或表达式,字符串长度)其中,数字列或表达式是要转换为字符串的数字类型的数据,字符串长度是转换后字符串的长度,可以是一个整数或一个变量。
示例:假设有一个表sales,其中包含一个列amount,存储了订单的金额。
我们想要将该列的数据转换为字符串类型,并在每个金额前面添加一个货币符号"$",则可以使用CHAR函数进行转换:SELECT CHAR(amount, 10) AS amount_strFROM sales;上述语句将查询结果中的amount列转换为字符串类型,并将转换后的结果存储在一个名为amount_str的新列中。
转换后的字符串长度为10,不足10位的数字会在左侧补0。
2. VARCHAR函数VARCHAR函数也是DB2中常用的数字转字符串函数,其基本语法如下:VARCHAR(数字列或表达式,字符串长度)与CHAR函数类似,数字列或表达式是要转换为字符串的数字类型的数据,字符串长度是转换后字符串的长度,可以是一个整数或一个变量。
示例:假设有一个表employee,其中包含一个列salary,存储了员工的薪水。
我们想要将该列的数据转换为字符串类型,并在每个薪水后面添加一个单位符号"元",则可以使用VARCHAR函数进行转换:SELECT VARCHAR(salary, 15) || '元' AS salary_strFROM employee;上述语句将查询结果中的salary列转换为字符串类型,并将转换后的结果存储在一个名为salary_str的新列中。
db2字符串函数
db2字符串函数DB2⼀个汉字占3个字节,Oracle占两个字节。
Oracle:SQL> select lengthb('中') from dual;LENGTHB('中')-------------2DB2:db2 => values length('中')1-----------31、Locate函数语法:LOCATE(ARG1,ARG2,<POS>)LOCATE函数在ARG2中查找ARG1第⼀次出现的位置,如果指定POS,则从ARG2的POS处开始查找ARG1第⼀次出现的位置。
db2:LOCATE 函数返回⼀个字符串在另⼀个字符串中第⼀次出现的起始位置。
如果指定了可选的起始位置,则表明它是源字符串中开始进⾏搜索的字符位置。
可以指定⼀个可选的字符串长度单元来指明在哪些单元中表⽰函数的起始位置和结果。
可以使⽤基于字符的函数来解决在 LOCATE 函数中指定起始位置的问题。
locate(String param1,String param2,int param3) 从param2的第param3位置开始,返回param1第⼀次出现的位置,默认param2为1。
db2 => values locate('a','abca',3,codeunits16)1-----------41 条记录已选择。
POSITION 函数返回⼀个字符串在另⼀个字符串中第⼀次出现的起始位置。
使⽤基于字符的函数可以解决将字节位置返回为字符位置的问题。
经测试,代码单元⽤octets也可以得到正确结果。
db2 => values position('中','abc1中',codeunits16)1-----------51 条记录已选择。
Oracle:INSTR(源字符串, ⽬标字符串, 起始位置, 匹配序号)INSTR在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。
db2时间转换函数
db2时间转换函数在DB2中,你可以使用多种函数来转换时间。
以下是一些常用的时间转换函数:1. CAST函数: 用于将一个数据类型转换为另一个数据类型。
```sqlSELECT CAST(column_name AS VARCHAR(10)) FROM table_name; ```2. CONVERT函数: 类似于CAST函数,用于将一个数据类型转换为另一个数据类型。
```sqlSELECT CONVERT(VARCHAR(10), column_name) FROM table_name; ```3. DATE格式化函数: 使用DATE()函数与格式字符串可以格式化日期。
SELECT DATE(column_name, 'YYYY-MM-DD') FROM table_name;```4. TIMESTAMP格式化函数: 使用TIMESTAMP()函数与格式字符串可以格式化日期和时间。
```sqlSELECT TIMESTAMP(column_name, 'YYYY-MM-DD HH:MI:SS') FROM table_name;```5. YEAR(), MONTH(), DAY(): 从日期中提取年份、月份和日期。
```sqlSELECT YEAR(column_name), MONTH(column_name),DAY(column_name) FROM table_name;```6. HOUR(), MINUTE(), SECOND(): 从时间戳中提取小时、分钟和秒。
SELECT HOUR(column_name), MINUTE(column_name),SECOND(column_name) FROM table_name;```7. ADD_MONTHS(): 在日期上添加或减去月份。
```sqlSELECT ADD_MONTHS(column_name, 3) FROM table_name; -- 在日期上加3个月```8. SUBTRACT_MONTHS(): 从日期上减去月份。
db2 sql 教程
Alter table tabname add primary key(col)
删除主键:
Alter table tabname drop primary key(col)
删除表:drop table tabname
3、表空间:
创建表空间:create tablespace tbsname pagesize 4k managed by database using (file ‘file’ size)
语法格式:
Rollback [work]
高级sql简单介绍
一、查询间使用运算词
A: UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
删除表空间:drop tablespace tbsname
4、索引:
创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
[color=blue:b36c9124a3]注:索引是不可更改的,想更改必须删除重新建。[/color:b36c9124a3]
表空间加入容器:alter tablespace tablespace_name add(file 'filename' size)
db2中各个类型互相转换处理
db2中各个类型互相转换处理给数字左侧⾃动占位补零digits函数:digits(参数)digits⾥的参数必须是整型参数,可以是smallint,int,bigint,decimal,其中smallint占5位,int占10位,bigint占19位。
decimal 默认为5位,最多为31位可以表⽰为decimal(31)。
也就说digits参数能够容纳的数字最多为31位,通常digits在参数不⾜10位的时候⾃动补零补齐到10位,等于10位的时候就返回10位,⼤于10位⽽⼩于19位的时候就⾃动补零补齐到19位,等于⼤于19位且⼩于31位的时候数字原封不动地返回不再⾃动补零。
-- 0000000003 10位select digits(3) from dual;-- 0000000000000000003 19位select digits(cast(3 as bigint)) from dual;-- 00003 5位select digits(cast(3 as smallint)) from dual;-- 0000000000000000000000000000003 31位select digits(cast(3 as decimal(31))) from dual;更常⽤的⾃定义补零位数:digits(数字,截取位数)-- 结果:03select right(digits(3),2) from dual;-- 结果:00000003 8位select right(digits(3),8) from dual;-- 通过cast函数将参数转换为适合的delcimal类型-- 结果:0000000000000000000003 22位select right(digits(cast(3 as decimal(22))),22) from dual;查看字符串长度-- 查看字符串长度结果:4values length('1322');字符串与数字类型相互转换digits函数返回⼀个代表数字的字符串。
db2数据类型转换及常见用法
select date('2010-03-31') + 1 days from sysibm.sysdummy1;//将天数加1,同理,可以类推 1 months ,1 years
money为decimal(8,2)
[ decimal ------->char ] Digits(money)
[ char ------->decimal ] cast(Digits(money) as decimal(8,2))
EXEC SQL EXECUTE IMMEDIATE :er_v_sql;/* 对于处理动态语句,EXECUTE IMMEDIATE 比以前可能用到的更容易并且更高效,:er_v_sql 表示一条需要执行的语句,或者存储过程*/
money为double(8,2)
[ double ----->char ] char(cast(money as decimal(8,2)))
[ char ------->double ] cast(cast(char(cast(a.money as decimal(8,2))) as decimal(8,2)) as double)
money为date
[ date ------>char ] char(money)
[ char ------>date ] date(trim(char(money)))
select to_char(integer(c_crt_tm),'yyyy-mm-dd hh24:mi:ss') from 表名 ;//将日期时间格式化为字符串
DB2函数大全(整理)
DB2函数大全函数名函数解释函数举例AVG()返回一组数值的平均值.SELECT AVG(SALARY)FROMBS EMPMS; CORR(),CORREL ATION()返回一对数值的关系系数.SELECT CORRE LATIO N(SALARY,BONUS)FROMBS EMPMS;COUNT()返回一组行或值的个数.SELECT COUNT(*)FROMBS EMPMS; COVAR(),COVARI ANCE()返回一对数值的协方差.SELECT COVAR(SALARY,BONUS)FROMBS EMPMS;MAX()返回一组数值中的最大值.SELECT MAX(SALARY)FROMBS EMPMS;MIN()返回一组数值中的最小值.SELECT MIN(SALARY)FROMBS EMPMS; STDDEV()返回一组数值的标准偏差.SELECT STDDE V(SALARY)FROMBS EMPMS;SUM()返回一组数据的和.SELECT SUM(SALARY)FROMBS EMPMS;VAR(),VARIAN CE()返回一组数值的方差.SELECT VARIA NCE(SALARY)FROMBS EMPMS;ABS(),ABSVAL()返回参数的绝对值.SELECT ABS(-3.4)FROMBS EMPMS; ACOS()返回参数的反余弦值.SELECT ACOS(0.9)FROMBS EMPMS;ASCII()返回整数参数最左边的字符的ASC II码.SELECT ASCII('R')FROMBS EMPMS;ASIN()返回用弧度表示的角度的参数的反正弦函数.SELECT ASIN(0.9)FROMBS EMPMS;ATAN()返回参数的反正切值,该参数用弧度表示的角度的参数.SELECT ATAN(0.9)FROMBS EMPMS;ATAN2()返回用弧度表示的角度的X和Y坐标的反正切值.SELECT ATAN2(0.5,0.9)FROMBS EMPMS;BIGINT()返回整型常量中的数字或字符串的64位整数表示.SELECT BIGIN T(EMP_NO)FROMBS EMPMS;CEILIN G() OR CEIL()返回比参数大或等于参数的最小的整数值.SELECT CEILI NG(3.56)FROMBS EMPMS;SELECT CEIL(4.67)FROMBS EMPMS; CHAR()返回日期时间型,字符串,整数,十进制或双精度浮点数的字符串表示. SELECT CHAR(SALARY,',')FROMBS EMPMS;CHR()返回具有由参数指定的A SCII码的字符.SELECT CHAR(167)FROMBS EMPMS;CONCAT()返回两个字符串的连接.SELECT CONCA T(EMP_NO,EMP_NA M)FROMBS EMPMS;YEAR()返回数值的年部分.SELECT YEAR('2003/01/02')FROMBS EMPMS; VARCHA R()返回字符串,日期型,图形串的可变长度的字符串表示.SELECT VARCH AR(EMP_NA M,50)FROMBS EMPMS;UCASE() OR UPPER()返回字符串的大写.SELECTUCASE(EMP_NA M)FROMBS EMPMS;SELECT UPPER(EMP_NO)FROMBS EMPMS;TRUNCA TE() OR TRUNC()从表达式小数点右边的位置开始截断并返回该数值. SELECT TRUNC ATE(345.6789,2)FROMBS EMPMS;TIME()返回一个数值中的时间.SELECT TIME('2001-03-19.12.30.123456')FROMBS EMPMS;SUBSTR(EXP1,EXP2)返回EXP1串自EXP2处开始的子串.SELECT SUBSTR('CDNJFD JFJD',5)FROM BSEMPM S;SELECTSUBSTR('CDNJFD JFJD',5,2)FROM BSEMPM S;SQRT()返回该参数的平方根.SELECT SQRT(36)FROMBS EMPMS;SPACE()返回由参数指定的长度,包含空格在内的字符串.SELECT SPACE(10)FROMBS EMPMS;SECOND()返回一个数值的秒部分.SELECT SECON D('18:34:32')FROMBS EMPMS;RTRIM()删除字符串尾部的空格.SELECT RTRIM('COMMEN T')FROMBS EMPMS;ROUND(EXP1,EXP2)返回EXP1小数点右边的第EXP2位置处开始的四舍五入值. SELECT ROUND(2345.6789,2)FROMBS EMPMSREPLAC E(EXP1,EXP2,EXP3)用EXP3替代EXP1中所有的E XP2SELECT CHAR(REPLAC E('ROMAND D','NDD','CCB'),10)FROMBS EMPMS; REPEAT(EXP1,EXP2)返回EXP1重复EXP2次后的字符串.SELECT CHAR(REPEAT('REPEAT',3),21)FROMBS EMPMS;REAL()返回一个数值的单精度浮点数表示.SELECT REAL(10)FROMBS EMPMS;RAND()返回0和1之间的随机浮点数.SELECT RAND()FROMBS EMPMS; POWER(EXP1,EXP2)返回EXP1的EXP2次幂.SELECT POWER(2,5)FROMBS EMPMS;POSSTR(EXP1,EXP2)返回EXP2在EXP1中的位置.SELECT('ABCDEF GH','D')FROMBS EMPMS;NULLIF(EXP1,EXP2)如果EXP1=EXP2,则为NULL,否则为EXP1NODENU MBER()返回行的分区号.SELECT NODEN UMBER(EMP_NO)FROMBS EMPMS;MONTH()返回一个数值的月部分.SELECT MONTH('2003/10/20')FROMBS EMPMS;MOD(EXP1,EXP2)返回EXP1除以EXP2的余数.SELECT MOD(20,8)FROMBS EMPMS;MINUTE()返回一个数值的分钟部分.SELECT MINUT E('18:34:23')FROMBS EMPMS;LTRIM()删除字符串前面的空格.SELECT LTRIM('CDDD')FROMBS EMPMS;HOUR()返回一个数值的小时部分.SELECT HOUR('18:34:23')FROMBS EMPMS;DOUBLE()如果参数是一个数字表达式,返回与其相对应的浮点数,如果参数是字符串表达式,则返回该数的字符串表达式.SELECT DOUBL E('5678')FROMBS EMPMS;EXP()返回参数的指数函数.SELECT EXP(2)FROMBS EMPMS;FLOAT()返回一个数的浮点表示.SELECT FLOAT(789)FROMBS EMPMS; FLOOR()返回小于或等于参数的最大整数.SLECTF LOOR(88.93)FROMBS EMPMS;HEX()返回一个表示为字符串的值的16进制表示.SELECT HEX(16)FROMBS EMPMS;因为没有更好的术语,所以您还可以使用英语来执行日期和时间计算:curren t date + 1 YEARcurren t date + 3 YEARS+ 2 MONTHS + 15 DAYScurren t time + 5 HOURS- 3 MINUTE S + 10 SECOND S要计算两个日期之间的天数,您可以对日期作减法,如下所示:days (curren t date) - days (date('1999-10-22'))而以下示例描述了如何获得微秒部分归零的当前时间戳记:CURREN T TIMEST AMP - MICROS ECOND (curren t timest amp) MICROS ECOND S如果想将日期或时间值与其它文本相衔接,那么需要先将该值转换成字符串。
DB2 SQL字符串函数
DB2SQL字符串函数ASCII函数:将字符串转换为ASCII码语法:ASCII(S)参数:字符串S返回值:相对应的ASCII码CHR函数:将ASCII码转换为字符语法:CHR(N)参数:ASCII码值返回值:相对应的字符CONCAT函数:连接字符串语法:CONCAT(S1,S2)参数:字符串(2列)返回值:结果字符串LENGTH函数:计算字符串长度语法:LENGTH(S)参数:字符串S返回值:整型在UTF-8字符集下,一个汉字用三个字节表示!LEFT函数:获取字符串左部语法:LEFT(S,m)参数:字符串S,字节数m返回值:字符串左部RIGHT函数:获取字符串右部语法:RIGHT(S,m)参数:字符串S,字节数m返回值:字符串右部LOCATE函数:在字符串中查询字符串语法:LOCATE(S1,S2[,n])参数:字符串S1,字符串S2,整型n返回值:目标字符串位置判断字符串S2是否含有字符串S1,如果有,则返回所在位置数值。
在DB2中,如果S1、S2列定义为CHARACTER型,则返回0。
示例中两列均定义为VARCHAR 型。
LOWER函数:将字符串转换为小写语法:LOWER(S)参数:字符串S返回值:转换后的结果字符串UPPER函数:将字符串转换为大写语法:UPPER(S)参数:字符串S返回值:转换后的结果字符串LTRIM/RTRIM函数:删除字符串左/右边的空格语法:LTRIM/RTRIM(S)参数:字符串S返回值:删除后的字符串POSSTR函数:在字符串中检索字符串语法:POSSTR(S1,S2)参数:字符串S1,S2(S2不能为列名)返回值:目标字符串位置REPEAT函数:重复字符串生成新的列语法:REPEAT(S,n)参数:字符串S,数值n返回值:返回重复n次后的值n为非正数是返回NULLREPLACE函数:替换字符串语法:REPLACE(S1,S2,S3)参数:字符串S1、S2、S3返回值:替换后的字符串值TRANSLATE函数:替换字符串中的指定内容(注意比较与REPLACE函数的差异)语法:TRANSLATE(S1[,S2,S3[,S4]])参数:原字符串S1,置换后的字符串S2,置换前的字符串S3,空缺填充字符串返回值:替换后的字符串备注:当S2比S3短的时候可以指定S4作为填充。
DB2函数——常用函数整理
DB2函数——常⽤函数整理⼀、判断函数VALUE函数语法:VALUE(EXPRESSION1,EXPRESSION2)VALUE函数是⽤返回⼀个⾮空的值,当其第⼀个参数⾮空,直接返回该参数的值,如果第⼀个参数为空,则返回第⼆个参数的值。
--表⽰如果T1.ID为空,则返回空串,如果T1.ID不为空,则返回T1.ID。
SELECT VALUE(ID,'') FROM T1COALESCE函数语法:COALESCE(ARG1,ARG2...)COALESCE返回参数集中第⼀个⾮null参数。
⽤法类似于VALUE函数。
当其第⼀个参数⾮空,直接返回该参数的值,如果第⼀个参数为空,则返回第⼆个参数的值NVL函数NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本⾝。
但此函数有⼀定局限,所以就有了NVL2函数。
拓展:NVL2函数:Oracle/PLSQL中的⼀个函数,Oracle在NVL函数的功能上扩展,提供了NVL2函数。
NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。
case when函数select ID,Username,namer=(case when(score<='50')then'实习'when(score>'50'and score<='500' ) then'⾚脚医⽣'when(score>'500'and score<='1000' ) then'村卫⽣员'when(score>'1000'and score<='1500' ) then'乡卫⽣员'when(score>'1500'and score<='2000' ) then'镇卫⽣员'when(score>'2000'and score<='3000' ) then'医师'when(score>'3000'and score<='5000' ) then'主治医师'when(score>'5000'and score<='10000' ) then'副主任医师'when(score>'10000'and score<='20000' ) then'主任医师'when(score>'20000'and score<='50000' ) then'健康⼤使'else'健康⼤使'end ), (SELECT count(id)FROM jk01_YiWen_QuestionWHERE UserID = dbo.jk01_Member.ID) as questionnumfrom jk01_Memberexists(A)函数判断是否存在,存在数据返回true,不存在返回false先记住怎么⽤,不懂1、不关联情况下,内表有数据,⽤not exists查不到不关联不带⼊去检验,判断⾥⾯是否查询出来返回为true或者false2、关联情况下,内表有数据,not exists查询的是外表不存在于内表的数据将外查询表的每⼀⾏,代⼊内查询作为检验,如果内查询返回的结果取⾮空值,则EXISTS⼦句返回TRUE,这⼀⾏⾏可作为外查询的结果⾏,否则不能作为结果。
