db2函数语法详解,db2 常用函数
1.ascii(s):取表达式s最左边字符的ascii码。
参数:任何内置字符类型,
返回值:整数类型。
db2=值(ascii(A )、ascii(Abc )、ascii(1 )、ascii(@ )、ascii(null))
1 2 3 4 5
- - - - -
65 65 49 64 -
已选择1条记录。
2、
Chr(n):取ascii码n表示的字符。
参数:integer或smallint,范围从0到255。
返回值:长度为1个字符。
db2=值(chr(65),chr(49),chr(64),chr(35))
1 2 3 4
- - - -
A 1 @ #
已选择1条记录。
3、
Character_length(string,param2)(或char_length(s,p))取字符串的长度
参数:string是任意字符串或graphic类型的字符串。
Param2可以是代码单元的16位UTF-16编码,即字符串表示为16位UTF-16编码的字符串。
Codeunits32—32位UTF-32编码,即string表示为32位UTF-32编码的字符串。
八位字节—将其视为一个字节字符串。
返回值:返回字符串中存储字符的实际长度。
db2=select char_length(firstnme,octets),length(trim(firstnme)),firstnme from employee仅获取前5行
1 2第一次
- - -
克里斯汀
7 7迈克尔
5 5莎莉
约翰福音
6 6欧文
已选择5条记录。
相关函数:
Length(str),返回str的长度。
4、
Concat(str1,str2):连接字符串
参数:参数1和2可以是字符类型、数字类型或日期类型数据。但是它们之间存在兼容性,如下所示:
4.1二进制字符串只能用二进制字符串连接。
4.2只有unicode编码的数据库支持字符串和图形字符串的连接。
在连接之前,字符串将被转换成图形字符串。
应该注意,为位数据定义的字符串不能转换为图形字符类型。
4.3如果参数不是字符串,在连接过程中会隐式转换成字符串。
返回值:结果的长度和类型取决于任何相互兼容的转换后的类型和长度。
db2=values (concat(sysdate,当前时间),concat(1,2) 10,concat(1, q ),concat(chen_ , CSDN ))
1 2 3 4
- - - -
陈2013-03-22-22
已选择1条记录。
字符串也可以使用符号:
db2=values(当前日期 当前时间)
一个
-
2013-03-23 06:56:57
已选择1条记录。
5、
Lower(s):将字符转换为小写。
参数:参数的类型必须是char或varchar。
Unicode数据库支持图形字符串,在转换为小写之前先转换为字符串。
当参数为null时,返回值也为null。
返回值:字符或字符串的小写形式,结果的类型和长度保持不变。
db2=值(lower(U ),lower(null))
1 2
- -
你-
已选择1条记录。
Lcase():与lower()函数相同。
l
ower(区分区域设置)
下限(sysfun模式)
7、
大写:将字符转换为大写。
参数:char或varchar字符类型。
返回值:字符或字符串的大写形式,结果的类型和长度保持不变。
db2=values (upper(abc ),upper(null))
1 2
- -
ABC -
已选择1条记录。
相关函数:
Ucase():具有与upper()函数相同的功能。
8、
Translate(str,to,from[,pad]):将str中的所有from替换为to,如果length (to)是length(to) length(from),则用pad来完成。
参数:str:字符串
收件人:字符或字符串
来自:字符或字符串
填充:字符或字符串
返回值:返回被替换后的字符串。需要注意的是,如果是同音字,也会被替换。
如果length (to)是length(to) length(from),那么结果中原字符串from不长的地方会用空格填充。
DB2=values(translate( text 1 text 2 test 3 text 4 , * ,text , # ))
一个
-
*##*1 *##*2 *#s*3 *##*4
已选择1条记录。
DB2=values(translate( text 1 text 2 test 3 text 4 , *, text ))
一个
-
* * 1 * * 2 * 3 * * 4
已选择1条记录。
翻译是一个强大的功能。有关更多信息:
翻译功能
相关函数:
Replace(str,from,to):将字符串str中的所有字符替换为to。
要删除“文本1文本2测试3文本4”中的所有空格:
db2=值(replace(text1 text2 test3 text4 , ,))
一个
-
文本1文本2测试3文本4
已选择1条记录。
9、
substr(字符串,开始,长度)
参数:str:可以是字符型、数值型、时间日期型;
所有字符串在被截获之前都被隐式转换为varchar类型。
对于双字节字符(全角),将不返回值。
Start:截取字符串的起始位置,整数类型,如果不是整数类型,将隐式转换为整数类型。
在大小1和字符串的长度(固定长度)或最大长度(可变长度)之间(正数)。
Len:截取字符串的长度,整数类型,如果不是整数类型,将隐式转换为整数类型。
注意:这三个参数可以由其他函数生成。
返回值:字符类型。
DB2=values(substr( Chen LiNbO _ csdn _ China ,11,4))
一个
-
世纪乐知
已选择1条记录。
截断小数部分:
db2=values (substr(100.101),locate( . ,char(100.101)) 1),100.101)
1 2
- -
101 100.101
已选择1条记录。
截取小数的方法:http://www.csdn.net/bobo12082119/archive/
10、
Substrb(str,start,len):截取字符串的长度。
参数:str:同substr()函数;
Start:如果为正,与substr()函数相同;
为负,则从字符串的末尾到开头搜索截取位置,
如果绝对值大于字符串的长度,则返回长度为0的字符串。
如果为0,则从str的起始位置1开始截取。
Len:如果不是整数类型,会自动隐式转换为整数类型。
如果len length(str),截取的长度为:length(str)-start 1。
如果len为0,len=0,即结果返回长度为0的字符串。
返回值:返回值的类型是character,其长度取决于len参数。
返回值的长度:
10.1参数len=0,返回值长度为0。
10.2如果start不是常数,len就是常数,结果的长度就是len和length(str)的最小值。
10.3如果start是常量,并且指定了len,则结果的长度为:length(str)-start。
如果len是变量,结果的长度是:length(str)-start 1。
10.4如果start和len是常数,则结果的长度是len和(length(str)-start 1)的最小值。
值(长度(substrb(abcdef ,-1,0)),
substrb(abcdef ,-2,5),
长度(substrb(abcdef ,-2,-3)))
1 2 3
- - -
0 ef 0
已选择1条记录。
相关函数:
子链
11、
Ltrim(str):删除字符串前面的空格。
参数:参数可以是字符类型(char、varchar、graphic、vargraphic)、数字类型或时间日期类型。
非字符数据将隐式转换为字符类型。
返回值:如果参数的类型为char或varchar,则返回值的类型为varchar。
如果参数为vargraphic或graphic,则返回值为vargraphic。
如果参数是多个空格,将返回长度为0的字符串和一个空字符串。
DB2=values(ltrim( ABC ) - sysdate)
一个
-
abc -2013-03-23-13.57.34
已选择1条记录。
12、
Rtrim(str):删除字符串末尾的空格。
参数:参数可以是字符类型(char、varchar、graphic、vargraphic)、数字类型或时间日期类型。
非字符数据将隐式转换为字符类型。
返回值:如果参数的类型为char或varchar,则返回值的类型为varchar。
如果参数为vargraphic或graphic,则返回值为vargraphic。
如果参数是多个空格,将返回长度为0的字符串和一个空字符串。
db2=values (length(ltrim()),rtrim( abc )cde )
1 2
- -
0 abccde
已选择1条记录。
13、
Trim(str):trim是一个强大的函数,可以去掉多次出现的字符串或字符周围的空格。
的完整语法如下:
-TRIM-(--string-expression-)-
.-都是。
- - -"从-"
-B--条形字符-
-领导-
-我.
-尾随-
-T -
参数:
BOTH:删除字符串前面和后面的指定字符,缩写为b。
前导:从字符串的前面删除指定的字符,并缩写为l。
TRAILING:从字符串末尾删除指定的字符,并缩写为t。
这三个参数都没有指定,缺省情况下都是。
Strip-character:删除的单个字符;如果指定了此参数,默认情况下将删除字符串左边或右边的空格。
FROM str:参数可以是字符型(char,varchar,graphic,vargraphic),数值型或时间日期型。
非字符数据将隐式转换为字符类型。
返回值:移除了指定字符或空格的字符串。
删除空格的示例:
Values (length (trim (ABC )),-删除空格后,长度为3。
A trim (b来自 ABC) e ,-去掉前后的空格。
A trim (t来自 ABC ),-删除末尾的空格。
trim(l from ABC ) d -删除前面的空格。
)
1 2 3 4
- - - -
3 A ABC A ABC D
已选择1条记录。
去掉重复的字符——缩写(l,t,b):
值(trim(l a from abcd ),-
trim(t d from abcd ),-
trim(b e from eabcde )--
1 2 3
- - -
bcd abc
已选择1条记录。
去掉重复的字符——全名(开头,结尾,两者都有)
值(修剪(从“abcd”开始引导“a”),
修剪(从 abcd 开始尾随 d ),
trim(两个‘e’都来自‘eabcde’))
1 2 3
- - -
bcd abc
已选择1条记录。
相关函数:
Strip():删除字符串前后的空格或多次出现的字符。
语法如下:
-STRIP-(-string-expression--)-
-,- -两个都- -"
-B - -,-条形字符-
-领导-
-我.
-尾随-
-T -
db2=select salary,digits(salary),strip(digits(salary),b, 0) from employee仅提取前5行
薪金2 3
- - -
152750.00 015275000 15275
94250.00 009425000 9425
98250.00 009825000 9825
80175.00 008017500 80175
72250.00 007225000 7225
已选择5条记录。
14、
Lpad(str,len,pad):在字符串str的左侧使用填充字符(或字符串),使其长度达到len,前提是str的长度小于len。
参数:str:可以是字符型(char、varchar、graphic、vargraphic)、数值型或时间日期型。
如果不是,在操作之前全部将被转换成字符串。
Len:结果的长度是整数类型。字符串长度限制为32672,图形字符串长度限制为16336。
填充字符:补充字符或空格。
返回值:对于varchar类型的字符串,结果是右对齐的字符串,左边根据给定的字符补全。
对于char类型的字符串,因为其长度是固定的,所以结果类似于在字符串前面添加len-length(str)填充符。
如果len length(str),结果将是str,substr(str,1,len)的截取。
db2=描述表雇员
数据类型列
列架构数据类型名称长数字和小数字NULL
- - - - - -
.
FIRSTNME SYSIBM VARCHAR 12 0 No
.
工作IBM字符8 0是
.
已经选择了14个记录。
select firstnme,lpad(firstnme,12,.),lpad(firstnme,5,.)、lpad(job,10,.)
来自员工
仅获取前5行
第一次2 3 4
- - - -
克里斯廷(女子名).克里斯汀克里斯.总统
迈克尔.迈克尔米沙.经理
突围.莎莉莎莉.经理
约翰.约翰。约翰.经理
欧文.欧文欧文.经理
已选择5条记录。
15、
Rpad(str,len,pad):在字符串str的右侧使用填充字符(或字符串),使其长度达到len,前提是str的长度小于len。
其他参数与lpad()函数相同。例子如下:
select firstnme,rpad(firstnme,12,.),rpad(firstnme,5,.)、rpad(job,10,.)
来自员工
仅获取前5行
第一次2 3 4
- - - -
克里斯汀.克里斯普雷斯.
迈克尔迈克尔.MICHA经理.
莎莉莎莉.销售经理.
约翰约翰.约翰。经理.
欧文欧文.IRVIN经理.
已选择5条记录。
16、
Locate (str,Source,start [,str unit]):在源字符串中查找字符(或字符串)str,即起始位置之后的第一个出现位置。
参数:str:字符或字符串。
来源:字符串
Start:整型,必须大于0,默认值为1。
单位:代码单位16、代码单位32或八位字节,此参数不是必需的。
返回值:整数类型,其中str第一次出现在source中的起始位置。
如果找不到,则返回0。
如果str或source为null,则返回值也为null。
如果str是长度为0的字符串,则返回1。
如果源的长度为0,它将返回0。
示例:
db2=从test1中选择cid、coalesce(cname, UNKNOW )、性别、年龄
CID 2性别年龄
- - - -
1辆斯科特M 30
002陈林波M 20
003 F 21
004未知的F 32
已选择4条记录。
Select Coalition (cname, unknown ),-相当于NVL (cname, unknown )的参数,并转到null。
-等效于value(str1,str2),并返回一个非空字符串。
Locate (o ,cname,1),-从位置1开始返回o的第一个出现位置,如果sname为null,则返回0。
Locate( ,cname,1),-如果str是长度为0的字符串,则返回1
Locate (null,cname,1)-如果字符串或源为null,它将返回null
来自测试1
1 2 3 4
- - - -
斯科特3 1 -
陈林波9 1 -
0 1 -
未知的
已选择4条记录。
相关函数:
Locate _ in _ string (str,source,start,str unit):与Locate()函数相同,不同的是start小于0。
Instr()是locate_in_string()函数的别名。
17、
Position(str,source,strunit):在源字符串中查找str字符(或字符串)的第一个出现位置。
strunit的参数必须是:codeunits16、codeunits32或octets。
如上所述,与locate()函数不同,该参数不能指定搜索的实际位置。默认情况下,它从字符串的开头开始搜索。
db2=select position(co ,cname),来自test1的cname
SQL0440N SQL找不到具有兼容参数的“FUNCTION”类型的名称“POSITION”。
的授权程序。SQLSTATE=42884
db2=select position(co ,cname,octets),来自test1的cname
1 CNAME
- -
2斯科特
0陈林波
0
- -
已选择4条记录。
相关函数:posstr(source,str)
18、
Left(str,len[,strunit]):截断字符串str左端的len字符。
参数:
Str:字符类型、固定长度或边长、图形字符串(双字节字符串)。
非字符型,截取前转换成变长字符串。
Len:拦截的长度,
如果len=0,则返回长度为0的字符串;
如果len 0,则报告错误,超出范围;
如果len length(str),则取整个字符串str。
Strunit:可选参数,可以是代码单元16、代码单元32或八位字节。
返回值:返回截取的字符串。如果str为null,它将返回null。其他参数可视为无效。
db2=值(左( abcdef ,-3))
SQL0138N内置字符串函数的数值参数超出范围。SQLSTATE=22011
db2=从test1中选择cname,left(cname,5),left(cname,21)
CNAME 2 3
- - -
斯科特斯科特斯科特
陈林波
- - -
已选择4条记录。
19、
Right(str,len,strunit):在str的右端截断len长度的字符串。
参数:
Str:字符类型、固定长度或边长、图形字符串(双字节字符串)。
非字符型,截取前转换成变长字符串。
Len:拦截的长度,
如果Len 0,则报告错误,并且内置字符串函数的数值参数超出范围。
如果len=0,则返回长度为0的字符串。
如果len length(str),则取str string。
Strunit:可选参数,可以是代码单元16、代码单元32或八位字节。
返回值:如果str为null,则返回null,其他参数可能无效。
db2=从test1中选择cname,right(cname,3),right(cname,21)
CNAME 2 3
- - -
斯科特奥特斯科特
陈林波nbo陈林波
- - -
已选择4条记录。
20、
Space(n):返回n个空格,其中n的类型为integer或smallint。
db2=值(长度(空格(10)))
一个
-
10
已选择1条记录。
21、
蔻驰(str1,str2):返回两个字符串中非空的一个。
相同的功能有:
nvl(str1,str2),
值(str1,str2)
22、
nvl2(str1、str2、str3)
该函数可以由一个case表达式表示,如下所示:
str1不为空的情况
然后ste2
ELSE str3
结束
db2=从test1中选择cname,nvl2(cname,cname, UNKNOW )
CNAME 2
- -
斯科特斯科特
陈林波陈林波
-不知道
已选择4条记录。
23、
Cap (str):将str字符串的第一个字母大写。
db2=values (initcap(im a boy ),initcap(SCOTT ),initcap(scott ),init cap(_ _ _ _ _ _ yee Xun ),initcap(890csdn )
1 2 3 4 5
- - - - -
我是一个男孩斯科特斯科特_Yeexun 890csdn
已选择1条记录。
有关更多信息,请参考:
DB2内置函数
-奈德-
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。