赞
踩
默认从位置1开始查找,默认查找第1次出现的;
如果start为负数,则表示从右往左查找,但是查找结果仍是从左往右计算后的结果。
instr('sadhuqad','a',1,1)
注: 也可用于搜索源字符串中是否包含某个特定字符:
当instr() > 0,表示某个字段含有某个字符串;当instr() = 0,表示没有某个字符串
其中,str是源字符串(下同),start是开始截取的位置,length是要截取的长度。
start为0或1时,都是指从字符串的第1个字符开始截取,这个需要注意! 当start为负数时,表示截取的开始位置为字符串右端向左数第start个字符。
substr('Hello World',0,1) //返回结果为 "H"
substr('Hello World',1,1) //返回结果为 "H"
substr('Hello World',2,4) //返回结果为 "ello"
substr('Hello World',-3,3) //返回结果为 "rld"
substr('Hello World',5,3) //返回结果:"o W" (中间的空格也算一个字符串)
其中,length是截取字符长度
其中,length是截取字符长度
注:oracle仅支持substr()函数,sql sever支持上述所有三种
其中,str是源字符串,length是填充后的字符串长度,padstr是要填充的字符串。
length('abc') = 3. lengthb('abc') = 3.
length(‘张三’) = 2. lengthb('张三') = 4或者6*
*这里是因为在不同数据库中,因字符集不同导致编码不同,1个汉字可能占2个(ZHS16GBK)或者3个字节(AL32UTF8)。
可以使用 length()<>lengthb() 来判断字符中是否含有中文。
注: sql server中是LEN()计算长度
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。