db2函数语法详解,db2 常用函数

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: