db2判断字符为空_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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39612499/article/details/111730180

智能推荐

874计算机科学基础综合,2018年四川大学874计算机科学专业基础综合之计算机操作系统考研仿真模拟五套题...-程序员宅基地

文章浏览阅读1.1k次。一、选择题1. 串行接口是指( )。A. 接口与系统总线之间串行传送,接口与I/0设备之间串行传送B. 接口与系统总线之间串行传送,接口与1/0设备之间并行传送C. 接口与系统总线之间并行传送,接口与I/0设备之间串行传送D. 接口与系统总线之间并行传送,接口与I/0设备之间并行传送【答案】C2. 最容易造成很多小碎片的可变分区分配算法是( )。A. 首次适应算法B. 最佳适应算法..._874 计算机科学专业基础综合题型

XShell连接失败:Could not connect to '192.168.191.128' (port 22): Connection failed._could not connect to '192.168.17.128' (port 22): c-程序员宅基地

文章浏览阅读9.7k次,点赞5次,收藏15次。连接xshell失败,报错如下图,怎么解决呢。1、通过ps -e|grep ssh命令判断是否安装ssh服务2、如果只有客户端安装了,服务器没有安装,则需要安装ssh服务器,命令:apt-get install openssh-server3、安装成功之后,启动ssh服务,命令:/etc/init.d/ssh start4、通过ps -e|grep ssh命令再次判断是否正确启动..._could not connect to '192.168.17.128' (port 22): connection failed.

杰理之KeyPage【篇】_杰理 空白芯片 烧入key文件-程序员宅基地

文章浏览阅读209次。00000000_杰理 空白芯片 烧入key文件

一文读懂ChatGPT,满足你对chatGPT的好奇心_引发对chatgpt兴趣的表述-程序员宅基地

文章浏览阅读475次。2023年初,“ChatGPT”一词在社交媒体上引起了热议,人们纷纷探讨它的本质和对社会的影响。就连央视新闻也对此进行了报道。作为新传专业的前沿人士,我们当然不能忽视这一热点。本文将全面解析ChatGPT,打开“技术黑箱”,探讨它对新闻与传播领域的影响。_引发对chatgpt兴趣的表述

中文字符频率统计python_用Python数据分析方法进行汉字声调频率统计分析-程序员宅基地

文章浏览阅读259次。用Python数据分析方法进行汉字声调频率统计分析木合塔尔·沙地克;布合力齐姑丽·瓦斯力【期刊名称】《电脑知识与技术》【年(卷),期】2017(013)035【摘要】该文首先用Python程序,自动获取基本汉字字符集中的所有汉字,然后用汉字拼音转换工具pypinyin把所有汉字转换成拼音,最后根据所有汉字的拼音声调,统计并可视化拼音声调的占比.【总页数】2页(13-14)【关键词】数据分析;数据可..._汉字声调频率统计

linux输出信息调试信息重定向-程序员宅基地

文章浏览阅读64次。最近在做一个android系统移植的项目,所使用的开发板com1是调试串口,就是说会有uboot和kernel的调试信息打印在com1上(ttySAC0)。因为后期要使用ttySAC0作为上层应用通信串口,所以要把所有的调试信息都给去掉。参考网上的几篇文章,自己做了如下修改,终于把调试信息重定向到ttySAC1上了,在这做下记录。参考文章有:http://blog.csdn.net/longt..._嵌入式rootfs 输出重定向到/dev/console

随便推点

uniapp 引入iconfont图标库彩色symbol教程_uniapp symbol图标-程序员宅基地

文章浏览阅读1.2k次,点赞4次,收藏12次。1,先去iconfont登录,然后选择图标加入购物车 2,点击又上角车车添加进入项目我的项目中就会出现选择的图标 3,点击下载至本地,然后解压文件夹,然后切换到uniapp打开终端运行注:要保证自己电脑有安装node(没有安装node可以去官网下载Node.js 中文网)npm i -g iconfont-tools(mac用户失败的话在前面加个sudo,password就是自己的开机密码吧)4,终端切换到上面解压的文件夹里面,运行iconfont-tools 这些可以默认也可以自己命名(我是自己命名的_uniapp symbol图标

C、C++ 对于char*和char[]的理解_c++ char*-程序员宅基地

文章浏览阅读1.2w次,点赞25次,收藏192次。char*和char[]都是指针,指向第一个字符所在的地址,但char*是常量的指针,char[]是指针的常量_c++ char*

Sublime Text2 使用教程-程序员宅基地

文章浏览阅读930次。代码编辑器或者文本编辑器,对于程序员来说,就像剑与战士一样,谁都想拥有一把可以随心驾驭且锋利无比的宝剑,而每一位程序员,同样会去追求最适合自己的强大、灵活的编辑器,相信你和我一样,都不会例外。我用过的编辑器不少,真不少~ 但却没有哪款让我特别心仪的,直到我遇到了 Sublime Text 2 !如果说“神器”是我能给予一款软件最高的评价,那么我很乐意为它封上这么一个称号。它小巧绿色且速度非

对10个整数进行按照从小到大的顺序排序用选择法和冒泡排序_对十个数进行大小排序java-程序员宅基地

文章浏览阅读4.1k次。一、选择法这是每一个数出来跟后面所有的进行比较。2.冒泡排序法,是两个相邻的进行对比。_对十个数进行大小排序java

物联网开发笔记——使用网络调试助手连接阿里云物联网平台(基于MQTT协议)_网络调试助手连接阿里云连不上-程序员宅基地

文章浏览阅读2.9k次。物联网开发笔记——使用网络调试助手连接阿里云物联网平台(基于MQTT协议)其实作者本意是使用4G模块来实现与阿里云物联网平台的连接过程,但是由于自己用的4G模块自身的限制,使得阿里云连接总是无法建立,已经联系客服返厂检修了,于是我在此使用网络调试助手来演示如何与阿里云物联网平台建立连接。一.准备工作1.MQTT协议说明文档(3.1.1版本)2.网络调试助手(可使用域名与服务器建立连接)PS:与阿里云建立连解释,最好使用域名来完成连接过程,而不是使用IP号。这里我跟阿里云的售后工程师咨询过,表示对应_网络调试助手连接阿里云连不上

<<<零基础C++速成>>>_无c语言基础c++期末速成-程序员宅基地

文章浏览阅读544次,点赞5次,收藏6次。运算符与表达式任何高级程序设计语言中,表达式都是最基本的组成部分,可以说C++中的大部分语句都是由表达式构成的。_无c语言基础c++期末速成