字符串替换 REPLACE,得到字符的ASCII码

来源:互联网 发布:下载定时开关机软件 编辑:程序博客网 时间:2024/06/05 09:48
字符串替换 
  REPLACE()函数可以用来将字符串的指定的子字符串替换为其它的字符串,比如将
“Hello World”中的“rl”替换为“ok”后得到“Hello Wookd”,而把“Just so so”中的“s”
替换为“z”后得到“Juzt zo zo”。REPLACE()函数的参数格式如下: 
REPLACE(string,string_tobe_replace,string_to_replace) 
  其中参数string为要进行替换操作的主字符串,参数string_tobe_replace为要被替换的
字符串,而string_to_replace将替换string_tobe_replace中所有出现的地方。 
  执行下面的SQL语句: 
select FName,REPLACE(FName,'i','e'),FIDNumber, 
REPLACE(FIDNumber,'2345','abcd') FROM T_Person 
  执行完毕我们就能在输出结果中看到下面的执行结果: 
FName  REPLACE(FName,'i','e')  FIDNumber  REPLACE(FIDNumber,'2345','abcd') 
Tom  Tom  123456789120  1abcd6789120 
Jim  Jem  123456789121  1abcd6789121 
Lily  Lely  123456789122  1abcd6789122 
Kelly  Kelly  123456789123  1abcd6789123 
Sam  Sam  123456789124  1abcd6789124 
Kerry  Kerry  123456789125  1abcd6789125 
Smith  Smeth  123456789126  1abcd6789126 
BillGates  BellGates  123456789127  1abcd6789127 
  SQL中没有提供删除字符串中匹配的子字符串的方法,因为使用REPLACE()函数就可
以达到删除子字符串的方法,那就是将第三个参数设定为空字符串,用空字符串来替换匹配
的子字符串也就达到了删除指定子字符串的效果了。比如下面的SQL语句用来将FName中
的m以及FIDNumber中的123删除: 
SELECT FName, REPLACE(FName,'m','') ,FIDNumber,  
REPLACE(FIDNumber,'123','')  FROM T_Person 
  执行完毕我们就能在输出结果中看到下面的执行结果: 
FName  REPLACE(FName,'m','')  FIDNumber  REPLACE(FIDNumber,'123','') 
Tom  To  123456789120  456789120 
Jim  Ji  123456789121  456789121 
Lily  Lily  123456789122  456789122 
Kelly  Kelly  123456789123  456789 
Sam  Sa  123456789124  456789124 
Kerry  Kerry  123456789125  456789125 
Smith  Sith  123456789126  456789126 
BillGates  BillGates  123456789127  456789127 
  LTRIM()、RTRIM()和TRIM()都只能删除两侧的字符串,无法删除字符串中间的空格,
而使用REPLACE()函数也可以完成这个功能,也就是用空字符串替换中所有的空格。执行
下面的SQL语句: 
MYSQL、MSSQLServer: 

SELECT  REPLACE(' abc  123  wpf',' ','') , REPLACE(' ccw  enet  wcf f',' ','') 

得到字符的ASCII码 
  ASCII()函数用来得到一个字符的ASCII 码,它有且只有一个参数,这个参数为待求
ASCII码的字符,如果参数为一个字符串则函数返回第一个字符的ASCII码,比如执行下面
的SQL语句: 
MYSQL,MSSQLServer: 
SELECT  ASCII('a') , ASCII('abc') 
Oracle: 
SELECT  ASCII('a') , ASCII('abc')  FROM DUAL 
DB2: 
SELECT  ASCII('a') , ASCII('abc')  FROM SYSIBM.SYSDUMMY1 
  执行完毕我们就能在输出结果中看到下面的执行结果: 
ASCII('a')  ASCII('abc') 
97  97 

与ASCII()函数正好相反,SQL还提供了用来得到一个字符的ASCII 码的函数。在
MYSQL、MSSQLServer和DB2中,这个函数的名字是CHAR(),而在Oracle 中这个函数的
名字则为CHR()。 
  执行下面的SQL语句: 
MYSQL,MSSQLServer: 
SELECT  CHAR(56) , CHAR(90) ,'a', CHAR( ASCII('a') ) 
Oracle: 
SELECT  CHR(56) , CHR(90) ,'a', CHR( ASCII('a') )    
FROM DUAL 
DB2: 
SELECT CHR(56),CHR(90),'a',CHR( ASCII('a') )  
FROM SYSIBM.SYSDUMMY1

PS:  DATEADD(DAY,  3,date)为计算日期date 的3 天后的日期,
DATEADD(MONTH ,-8,date)为计算日期date 的8个月之前的日期。 SELECT FBirthDay, DATEADD (YEAR ,3,FBirthDay) as threeyrs, 
DATEADD(QUARTER ,20,FBirthDay) as ttqutrs, 
DATEADD(MONTH ,68,FBirthDay) as sxtmonths, 
DATEADD(WEEK, -1000,FBirthDay) as thweeik 
FROM T_Person

0 0
原创粉丝点击