db2判断字符为空_DB2函数——常用函数整理
一、判断函数
VALUE函数
语法:VALUE(EXPRESSION1,EXPRESSION2)
VALUE函数是用返回一个非空的值,当其第一个参数非空,直接返回该参数的值,如果第一个参数为空,则返回第二个参数的值。--表示如果T1.ID为空,则返回空串,如果T1.ID不为空,则返回T1.ID。
SELECT VALUE(ID,'') FROM T1
COALESCE函数
语法: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)FROMjk01_YiWen_QuestionWHERE UserID = dbo.jk01_Member.ID) asquestionnumfrom jk01_Member
exists(A)函数
判断是否存在,存在数据返回true,不存在返回false
先记住怎么用,不懂
1、不关联情况下,内表有数据,用not exists查不到
不关联不带入去检验,判断里面是否查询出来返回为true或者false
2、关联情况下,内表有数据,not exists查询的是外表不存在于内表的数据
将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。
这里的存在是存在于,举个例子来说 a表中有两条数据
1、判断子表中存在数据么,存在的话返回true,即where语句执行
select * from A a where exists (select 1 from A b )
执行结果如下
2、判断子表中不存在数据么,不存在的话返回true,即where语句执行
select * from A a where not exists (select 1 from A b )
执行结果如下
3、如果在子表中加入条件使其关联外表
select * from A a where exists (select 1 from A b where b.a=a.a )
执行结果如下
4、如果在子表的查询语句中加上where条件过滤并且与外表关联
select * from A a where exists (select 1 from A b where b.a=a.a and b.a='1a' )
5、如果在子表的查询语句中加上where条件过滤并且与外表关联
select * from A a where not exists (select 1 from A b where b.a=a.a and b.a='1a' )
关联上表的时候就可以理解为与In一个用法,判断外表存在于内表里的数据或者不存在于内表里的数据并且显示出来
二、字符串函数
判断字符在字符串中的位置1、instr函数
语法:instr('aa|bb|cc|dd|','|',1,1) aa --多了一个结束标记位置
instr(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号)//返回找到的位置,如果找不到则返回
ps:数据库中字符串索引都是从1开始,从0开始的话是搜索不到的,例如:select instr('oracle traning','ra',0,2) instring fromdual;索引为0返回的值是0
ps:默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。2、LOCATE函数
语法:LOCATE(ARG1,ARG2,) --只有起始位置
LOCATE函数在ARG2中查找ARG1第一次出现的位置,如果指定POS,则从ARG2的POS处开始查找ARG1第一次出现的位置。
SELECT LOCATE('a',NAME) FROMT1
3、POSSTR函数 语法:POSSTR(EXP1,EXP2) POSSTR函数返回EXP2在EXP1中的位置。 --没有起始位置和结束位置SELECT LOCATE(NAME,'a') FROM T1
返回字符串长度
2、LENGTH函数
语法:LENGTH(ARG)
LENGTH函数返回参数的长度。
eg:SELECT LENGTH(NAME) FROM T1
字符串变大小写1、LCASE、LOWER函数
语法:LCASE()、LOWER()
LCASE、LOWER函数返回定长、变长字符串的小写形式。
eg:SELECT LCASE(NAME),LOWER(NAME) FROMT12、UCASE、UPPER函数
语法:UCASE()、UPPER()
UCASE、UPPER函数返回定长、变长字符串的大写形式。
SELECT UCASE(NAME),UPPER(NAME) FROMT1
去除空格
1、LTRIM、RTRIM函数
DB2中无trim()函数,所以要去空格要执行左右去空格。
语法:LTRIM()、RTRIM()LTRIM、RTRIM函数从CHAR、VARCHAR、GRAPHIC或者VARGRAPHIC中去掉左侧或右侧的空格。
eg:SELECT LTRIM(NAME),RTRIM(NAME) FROMT12、LEFT、RIGHT函数
语法:LEFT(ARG,LENGTH)、RIGHT(ARG,LENGTH)LEFT、RIGHT函数返回ARG最左边、右边的LENGTH个字符串,ARG可以是CHAR或BINARY STRING。
eg:SELECT LEFT(NAME,2),RIGHT(NAME,2) FROM T1
连接字符串
1、CONCAT函数
语法:CONCAT(ARG1,ARG2)
CONCAT函数返回两个字符串的连接。
eg:SELECT CONCAT(FIRST_NAME,LAST_NAME) FROM T1
替换字符串
1、INSERT函数
语法:INSERT(ARG1,POS,SIZE,ARG2) --找到位置替换
INSERT函数返回一个字符串,将ARG1从POS处删除SIZE个字符,将ARG2插入该位置。
2、REPLACE函数语法:REPLACE(EXP1,EXP2,EXP3)
REPLACE函数用EXP3代替EXP1中所有的EXP2。eg:
SELECT REPLACE('ROMANND','NND','CCB') FROMT1
根据条件查找字符串,返回字符串
1、REPEAT函数
语法:REPEAT(ARG1,NUM_TIMES)
REPEAT函数返回ARG1被重复NUM_TIMES次的字符串。
eg:SELECT REPEAT(NAME,2) FROM T1
2、SPACE函数
语法:SPACE(SIZE)
SPACE函数返回一个包含SIZE个空格的字符串。
eg:
SELECT SPACE(10) FROMT1
截断字符串
1、SUBSTR函数
语法:SUBSTR(ARG1,POS,)
SUBSTR函数返回ARG1中POS位置开始的LENGTH个字符,如果没有指定LENGTH,则返回剩余的字符。
substr()是指从position开始算(包括position这个字符),截取的长度,也包括位置+长度所在的字符(前提是字符串的长度大于或等于两者之和)。
eg:SELECT SUBSTR('CDNJFDJFJD',5,2) FROM T1
转换为字符串
1、char函数 转化成字符串char(100)——把100转化为100字符串内容char(current date,ISO)——转换成yyyy-mm-ddchar(current date,USA)——转换成mm/dd/yyyychar(current date,EUR)——转换成dd.mm.yyyy
三、分组函数
row_number() over()函数
分组排序求和函数,有一篇专门的文档记录
四、类型转换函数
1、CAST表达式用来转换类型使用SELECT CAST(CURRENT TIME AS CHAR(8) ) FROMSYSIBM.SYSDUMMY12、转换为字符串类型:
CHAR函数
语法:CHAR(ARG)
CHAR函数返回日期时间型、字符串、整数、十进制或双精度浮点数的字符串表示。SELECT CHAR(SALARY) FROMTEST3、CHR函数
语法:CHR(ARG)
CHR函数返回由参数指定的ASCII码的字符,参数可以是INTEGER或SMALLINT。SELECT CHR(167) FROMTEST
4、VARCHAR函数
语法:VARCHAR(ARG,LENGTH)
VARCHAR函数返回字符串、日期型、图形串的可变长度的字符串表示。SELECT VARCHAR(NAME,50) FROMTEST--50为截取长度,如果name字符串的长度大于50,则返回“SQL0445W 值已被截断。SQLSTATE=01004”。
5、DIGITS函数
语法:DIGITS()
DIGITS函数返回SMALLINT、INTEGER、BIGIT或者DECIMAL参数的字符串值。SELECT DIGITS(ID) FROMTEST6、转换为数字类型:DOUBLE、FLOAT函数
语法:DOUBLE()、FLOAT()DOUBLE、FLOAT函数如果参数是一个数字表达式,返回与其对应的浮点数,否则返回错误代码。SELECT DOUBLE('4569') FROMTEST
7、INT函数
语法:INT()
INT函数返回整型常量中的数字、字符串或者日期、时间的整数表示。SELECT INT('111') FROMTEST
8、BIGINT函数
语法:BIGINT()
BIGINT函数返回整型常量中的数字、字符串或者时间戳的64位长整数表示。SELECT BIGINT('111') FROMTEST
9、SMALLINT函数
语法:SMALLINT()
SMALLINT函数返回整型常量中的数字、字符串短整数表示。SELECT SMALLINT('111') FROMTEST
10、REAL函数
语法:REAL()
REAL函数返回一个数值的单精度浮点数表示。SELECT REAL(10) FROMTEST
11、DEC[IMAL]函数
语法:DEC[IMAL]()DEC[IMAL]函数返回一个数值、DECIMAL的字符串、INTEGER的字符串、FLOAT-POINT的字符串、日期、时间或时间戳的DECIMAL数值。SELECT DEC(10) FROMTEST
12、HEX函数
语法:HEX()
HEX函数返回一个字符串的值的16进制表示。SELECT HEX(10) FROMTEST
13、FLOOR函数
语法:FLOOR()
FLOOR函数小于或等于参数的最大整数。SELECT FLOOR(10.50) FROM TEST
db2判断字符为空_DB2函数——常用函数整理相关推荐
- db2判断字符为空_算法之字符串转换为数字
思想:(源码parseLong) 遍历字符串每一位,转换成对应进制的数字 结果逐位与进制相乘 结果逐位与数字相加 特殊情况的判断: 字符串为空的情况 radix越界判断 负数处理 @Testpubli ...
- 判断字符为空_49. 把字符串转换成整数(剑指offer)
49. 把字符串转换成整数 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0. 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输 ...
- 判断字符为空_算法题:字符串转换整数 (atoi)
题目描述 题解 分析 他人更优解 一.题目描述 二.题解 import math class Solution:def myAtoi(self,str):str = str.strip() #去除字符 ...
- 计算机二级vf中字符,二级VF课堂:常用函数总结
数值函数: 1.绝对值和符号函数 格式:ABS() SIGN() 例如:ABS(-5)=5,ABS(4)=4,SIGN(8)=1,SIGN(-3)=-1,SIGN(0)=0 2.求平方根表达式 格式: ...
- iconv 判断字符编码_php下用iconv函数转换字符编码的问题
昨天在调试 WAP 网站时发现,在增加了 GB2312 到 UTF-8 转化以后,有些页面显示不正常了--有些页面只有一半的内容,另一半被截掉了.因为被截掉的部分包含了 的后半个标签 ,因此整个页面都 ...
- mysql注入报错函数_MySQL注入常用函数
注入的分类 仁者见仁,智者见智. 基于从服务器接收到的响应 ▲基于错误的 SQL 注入 ▲联合查询的类型 ▲堆查询注射 ▲SQL 盲注 •基于布尔 SQL 盲注 •基于时间的 SQL 盲注 •基于报错 ...
- 《MySQL》入门基础知识点大全:数据库操作、增删改查、联表查询、常用函数、MD5加密、事务特性、隔离级别
MySQL基础知识大全 1.操作数据库 1.1 创建表 1.2 修改表名 1.3 增加表的字段 1.4 修改表的字段 1.4.1 修改表的字段 1.4.2 修改表名 1.5 删除表的字段 1.6 删除 ...
- mysql 次方根_MySQL常用函数
1.数学函数 ABS(X) 绝对值 CEIL(X) 向上取整 FLOOR(X) 向下取整 RAND(X) 0-1的随机数 ROUND(X) 距离x最近的整数 ROUND(X,Y) 保留x后y位的小数, ...
- php 闪电,PHP闪电入门(16)函数-常用内置函数
前言: 今天我们列举并简单解释常用的字符串函数. 内容概要: 1.关于PHP内置函数的学习建议 2.PHP字符串常用函数 3.常用PHP数组常用函数 一.关于PHP内置函数的学习建议 php内置函数非 ...
最新文章
- Python设计模式-建造者模式
- SAP MM ME56不能为审批后的PR分配供应源?
- unity3D打包发布Apk详细步骤
- oracle创建表语句_利用FME去拼接SQL语句并创建表
- 【Matlab】定义顺序增加的字符串数组(A1,A2 ... An)并写到Excel的第一行
- 数据类型,隐式类型转换
- [INS-08109] Unexpected error occurred while validating inputs at state 'getOCMDetails'.
- RocketMQ实战(一)
- 亚马逊云科技张文翊:云让初创公司不输在起跑线上
- [WPF系列]-DataBinding(数据绑定) 自定义Binding
- linux mint自动登录,Linux Mint 19.2新功能/新特性介绍,包含Cinnamon、MATE、Xfce版本
- ubuntu(20.04)+linux内核(5.17.3)的config文件
- dsoframer java_DSOFramer的使用
- 贪心 学员 高阶机器学习 魔鬼·训练营
- 微信支付:小微商户申请入驻第一步:平台证书序列号的获取
- 看清我辈基本盘!罗振宇2020跨年演讲全文来了(未删减)
- React Native可视化开发工具
- c语言输入字母 字母表,输入字符,如果是字母则汇报并返回字母在字母表中序号的程序...
- Pt100铂电阻测温电路设计——
- Sql学习04(11.23-11.24)