技术标签: 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
文章浏览阅读908次。获取 dom 对象$("#divId").children("div").get(0);$("#divId").children("div")[0];获取 jquery 对象$("#divId").children("div").eq(0);$($("#divId").children("div").get(0));【Java面试题与答案】整理推荐基础..._jq 子级别div
文章浏览阅读271次,点赞4次,收藏4次。管理员管理:负责添加、删除、修改管理员账号,并设置相应的权限,确保管理员团队的专业性和高效性。新闻信息管理:发布、编辑和删除交通新闻、政策更新、路况信息等,保持信息的实时性和有效性。驾驶证业务管理:在线提交驾驶证申请、查询、更新、补办等业务,并实时查看办理进度。新闻信息查看:浏览系统发布的交通新闻、政策更新、路况信息等,了解最新的交通动态。机动车业务管理:在线提交车辆注册、年检、转移、报废等业务申请,并获取办理结果。用户管理:管理用户账号,包括用户注册、登录、权限设置等,确保系统的安全性。
文章浏览阅读4.4k次。1.问题描述希望每次打印时,都是用固定的打印机打印并且不希望弹出对话框进行设置,此时便可以设置静默打印。1.1什么是静默打印静默打印即点击打印时不弹出选项窗口和打印机设置窗口直接进行打印。1.2支持静默打印的打印方式零客户端打印、本地打印、服务器端打印支持静默打印。2.静默打印设置方法2.1 零客户端打印设置方法注:只支持 IE点击模板-打印..._静默打印是什么意思
文章浏览阅读2.4w次,点赞14次,收藏68次。使用的是STM32CBT8,小模块用起来性价比超级高,资源丰富,移植u/COS及HTTP、MQTT协议等等用起来简直欲罢不能,摇摇欲仙!BUT:IO口资源太少了,我想让你驱动100个LED,你缺告诉我,我的要求太多,你满足不了......还好,找到了74HC595,但是网上很多资源讲的我看了半天才总结、提炼并另辟蹊径出来精髓===============================_74hc595连接stm32
文章浏览阅读4.1k次,点赞2次,收藏8次。莱昂哈德·欧拉(Leonhard Euler ,1707年4月15日~1783年9月18日),瑞士数学家、自然科学家。1707年4月15日出生于瑞士的巴塞尔,1783年9月18日于俄国圣彼得堡去世。欧拉出生于牧师家庭,自幼受父亲的影响。13岁时入读巴塞尔大学,15岁大学毕业,16岁获得硕士学位。欧拉是18世纪数学界最杰出的人物之一,他不但为数学界作出贡献,更把整个数学推至物理的领域。他是数学史上最多产的数学家,平均每年写出八百多页的论文,还写了大量的力学、分析学、几何学、变分法等的课本,《无穷小分析引论》、_欧拉的物理成就
文章浏览阅读1.5w次。今天在写存储过程的时候,碰到一个问题,在执行存储过程的时候总是报错--同义词转换不再有效,发现一个查询语句中的一个表原来使用的是一个同义词,就试着把这个同义词单独拿出来进行查询操作,发现并没有问题。最后,经过一番努力,发现该同义词并不是直接指向一个实体表,而是指向另一个同义词。所以,将改同义词的指向改为直接指向原实体表的指向,问题得到解决。即同义词指向的 object ow_sql数据库中同义词转换不再有效
文章浏览阅读4.3k次。1.原生js实现文件上传html部分:上传文件js部分:upload(event) { //代替执行上传功能let it = event.target;$(it).next().click();},UploadFile() { //上传文件let msg = new FormData();msg.append('file', $('#uploadBillsInp')[0].files[0..._formdata.append('enctype', 'multipart/form-data');
文章浏览阅读245次。今天在用户的错误列表上看到这么个bugjava.lang.RuntimeException: Unable to start receiver com.anysoft.tyyd.appwidget.PlayAppWidgetProvider:java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com...._to start receiver com.mediatek.engineermode.emstartreceiver: java.lang.secur
文章浏览阅读2.5w次,点赞10次,收藏19次。我来简单对比阿里云服务器和腾讯云服务器的优劣和区别腾讯云相比阿里云优势不明显。阿里云比腾讯云开放的时间更早,辅助系统更完善些,功能更多可用性更强。但腾讯云不是单纯卖云服务的,凡是要接入腾讯的生态(比如微信小程序等)必须得用腾讯云服务器,腾讯云迅速发展壮大。腾讯云也在慢慢完善,大多数应用场景也都能满足,但就是对很多新技术的支持总是比阿里云慢一些,高级的配置定制也少一些。服务器结构不是很复杂的话用......_腾讯云与阿里云的优劣
文章浏览阅读1.6k次。********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi)时间:2011.10.17类别:C基础************_c 添加预处理命令
文章浏览阅读1.3w次。一、上传企业所得税纳税申报表时,Acrobat提示版本校验异常,请检查您的电脑网络连接是否正常:NotAllowedError;安全性设置禁止访问本属性或方法。二、解决方法打开Acrobat DC 阅读器的然后 在菜单栏 --找到编辑--再选择首选项,添加该文件(如图)或者添加文件夹路径(注意:添加文件夹下面的路径将全部都会有权限,如果不是非必要,可以直接添加文件。)完_版本校验异常,请检查您的电脑网络连接是否正常
文章浏览阅读95次。在贪心算法中,我们每次都选择当前状态下最优决策,然后更新状态,直到达到最终状态。本文将介绍几个经典的贪心算法案例,并给出C++代码实现。有n个任务需要调度,每个任务需要占用一个时间单位,并且有一个冷却期k。贪心算法本身也是一个很好的思维训练工具,可以帮助我们更好地理解问题本质和设计高效的算法。给定一个按升序排列的整数数组,将其划分成多个长度至少为3的连续子序列,每个子序列只包含连续的整数。有m个孩子和n个糖果,每个孩子有对应的贪婪值g_i和每个糖果有对应的大小s_i。贪心算法——C++实现中级案例。_c++贪心算法代码