- 浏览: 9853 次
最新评论
-------------------------------------------------- ------------------------- ---- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载; --- 2010-06-12 18:39:40
---- 关键字: str_replace 15.0 null 空格 替换
-------------------------------------------------- --------------------------
在ASE12.5.x平台中没有替换字符串的函数,也就是说没有类似replace的函数。对于replace这个词,我想有编程经验的肯定一看字面意思就知道是将某一字符串中指定的字符串替换为另外的字符串。可惜的是这么简单的功能在ase12.5.x中没有相应的函数,只有一个可怜的stuff函数。
stuff函数仅仅能够替换某一个字符串中某一个位置处的字符串为另外的字符串,如果这个字符串中有多处需要被替换呢?抱歉,stuff歇菜了。
一个简单的类似replace的功能还得需要写个过程或者函数来实现。 写起来效率低执行起来效率更低, so pooor.
谁要是实现了用简单的一两条sql语句顶替replace的功能,麻烦告诉我一声。谢谢!
幸运的是,ASE15.0版本中引入了类似replace的函数,但是人家的名字叫str_replace,不知道为啥?replace这个词和那个关键字冲突吗? 不解ZZZZZZZ
str_replace函数的语法很简单:
replace("string_expression1", "string_expression2", "string_expression3")
就是:将字符串1中所包含的所有 的字符串2都用字符串3统统替换。
一个简单的例子: 1> select str_replace('This is Andkylee!My nAme is andkylee!','A','a') 2> go ------------------------------------- This is andkylee!My name is andkylee! (1 row affected) 但是, 网上有人发帖说str_replace不能替换字符串中的空格为"(也就是说删除字符串中的所有空格)。不看官方文档,想当然的就写出来这样的语句:select str_replace('123 456 ',' ','')
但是很可惜,执行失败。 1> select len('123 456 '),str_replace('123 456 ',' ','') ,len(str_replace('123 456 ',' ','')) 2> go ----------- -------- ----------- 8 123 456 8 (1 row affected) 如上可以看到select str_replace('123 456 ',' ','')并没有替换其中的空格为空(亦即删除其中的所有空格),用函数str_replace执行前后的字符串是相同的。
通过查阅官方文档中关于str_replace的介绍,有下面的两点需要注意:
1. Adaptive Server 将空字符串常量自动转换为 1 个空格的字符串,以便将该字符串与 NULL 值区分开。
2. str_replace 在第三个参数中接受 NULL,将其视为尝试用 NULL 替换 string_expression2,有效地将 str_replace 转换成"字符串切除"
操作。
这两条的意思是说:在函数str_replace中""相当于" ", NULL 相当于""(空字符)。
""相当于" "
示例: 1> select str_replace("cde fghi ","","_") 2> go --------- cde_fghi_ (1 row affected) 1> select str_replace("cde fghi "," ","_") 2> go --------- cde_fghi_ (1 row affected) 两个空格还是2个空格意思:
1> select str_replace("cde fghi "," ","_")
2> go
---------
cde fghi
(1 row affected)
NULL 相当于""(空字符)
示例如下: 1> select str_replace("cde fghi "," ",null),len(str_replace("cde fghi "," ",null)) 2> go --------- ----------- cdefghi 7 (1 row affected) 1> select str_replace("cde fghi ","",null),len(str_replace("cde fghi "," ",null)) 2> go --------- ----------- cdefghi 7 (1 row affected) 总结:
在函数str_replace中NULL 相当于""(空字符),""相当于" " 。其它都是正常的。
发表评论
-
转余晟老师的正则专栏文章:(一):纠结的转义
2012-07-06 09:45 743【编者按】正则表达式一直是开发者工具箱中趁手的利器,但很多 ... -
【正则】构造复杂SQL语句的正则表达式3(细粒度正则匹配)
2012-07-06 09:37 1330(三)细粒度正则 ... -
tile布局的ButtonBar
2012-07-06 09:30 571Cust ... -
innerHTML 的小例子
2012-07-05 20:45 680function Test(){ a ... -
Swing组件集合的事件处理(二)
2012-07-03 13:43 732为了提高其效率并降低其复杂性,所有的Swing组件都被设计 ... -
Flex之数据格式化
2012-07-02 12:20 586数据格式化是对某 ... -
FLEX ComboBox绑定JAVA返回的数据源
2012-07-02 12:20 563万万没有想到会在一个小小的ComboBox上碰这么大钉子, ... -
Flex: AIR程序靠屏幕边缘收起 屏幕边缘吸附
2012-07-02 12:20 441让程序在靠到屏幕边缘的时候,向左或者右收起程序,类似QQ一 ... -
Flex 4架构的组件开发
2012-07-02 12:20 587Flex 4架构的组件开发 作者:Michael Labr ... -
不做“OUTMAN”!笔记本热门词汇盘点
2012-06-30 16:19 628不做“OUTMAN”!笔记本热门词汇盘点 2011年10月0 ... -
新闻发布会--联想笔记本
2012-06-30 16:18 741新闻发布会--联想笔记本 2011年10月11日 20 ... -
买笔记本电脑的注意事项
2012-06-30 16:18 668买笔记本电脑的注意事 ... -
如何选一款好的笔记本
2012-06-30 16:18 611如何选一款好的笔记本 ...
相关推荐
Sybase ASE15.0.3 Windows 32bit x86版(7之5_)
ASE 15.0.3 for windows 32bit 压缩包第一个
Sybase ASE15.0.3 Windows 32bit x86版(7之3更新)
Sybase ASE15.0.3 Windows 32bit x86版(7之6_)
D:\sybase-ase-11_0_3_3-6_i386.part2D:\sybase-ase-11_0_3_3-6_i386.part2D:\sybase-ase-11_0_3_3-6_i386.part2D:\sybase-ase-11_0_3_3-6_i386.part2D:\sybase-ase-11_0_3_3-6_i386.part2
Sybase ASE15.0.3 Windows 32bit x86版(7之7)
Sybase ASE15.0.3 for Windows (32bit) x86 (7之4)
Sybase ASE15.0.3 Windows 32bit x86版(7之2更新) 支持 Windows XP, 2003等32位操作系统
sybase ASE 15.0.3版各功能在所有平台上的可用性
sybase-ase-11_0_3_3-6_i386.part1sybase-ase-11_0_3_3-6_i386.part1sybase-ase-11_0_3_3-6_i386.part1sybase-ase-11_0_3_3-6_i386.part1sybase-ase-11_0_3_3-6_i386.part1
Sybase 数据库15.0.3,windows 32位操作系统 windows2000, xp, 2003等平台
Area Spectral Efficeinecy
此安装包的下载有效日期至:2020.12.31 ...Sybase ASE 这个仅仅是安装文件包,不包括EE及SBE的授权,如需要EE、SBE的授权请联系sybase,安装包的DE、XE用于学习是可以的,下载此包前,请先确认你的系统支持安装此ASE。
Spotlight_on_Sybase_ASE_keygen.Spotlight_on_Sybase_ASE_keygen.Spotlight_on_Sybase_ASE_keygen.Spotlight_on_Sybase_ASE_keygen.Spotlight_on_Sybase_ASE_keygen.Spotlight_on_Sybase_ASE_keygen.Spotlight_on_...
一个介绍A*算法的很好的事例程序,包含了算法所需的全部源代码
Sybase ASE快速参考手册.zip___2005999462749712.zip sybase数据库使用说明
对掺铒光纤放大器放大自发辐射进行仿真,由速率方程为根本对自发辐射特性进行模拟,得到不同能级粒子分布变化,最后得到ASE
ASE 加密码方式 ( 含 c# 与 java 两个版本 )
URP渲染管线下仅渲染接受到的阴影的shader
SYBASE ASE 15.0-配置指南-Unix(uconfig_ZHS-15.0.3)