Oracle与DB2中的substr()都是是截取给定字符串的字符,但是两者是有差异的。
Oracle:引用自 Oracle.SQL.Reference.10g.r2
The SUBSTR functions return a portion of char, beginning at character position,
substring_length characters long.
DB2:引用自 DB2_UDB_V8_SQL_REFERENCE
The SUBSTR function returns a substring of a string.
对于其他的我不做过多的说明,我在这里只是想说明他们在对于第二、三个参数上的差异做一些解析。
position,代表的是我们要截取的字符串char的起始位置。substring_length是指我们要截取的长度,这里两个数据库的处理方式就有分歧了。
在Oracle中,我们的substring_length长度是可以大于等于char字符串的长度的,但是函数本身的处理是依据你的起始位置position到char字符串结尾位置的长度来处理,并不会跟你所给定的substring_length来确定,相当于是Oracle为我们做了正确性的辨别并处理掉多余的长度。
在DB2中,如果substring_length的长度大于了起始位置到结束位置之间的长度,那么数据库只为我们报错,并不会像Oracle那样执行出我们想得到的结果。
《并且Oralce与DB2里的position取值也存在差异,在Oralce中,position是可以取值为0的,但是在DB2中,取值为0的话会报错。》position都是从1开始算。substr()是指从position开始算(包括position这个字符),截取的长度,也包括位置+长度所在的字符(前提是字符串的长度大于或等于两者之和)。
所以,我们在使用substr()函数的时候,要多加留意,特别是在不同数据库上使用时,一定要做各自的深入分析,不然我们的取值可能就会报错,或者报一些SQL错误。
分享到:
相关推荐
REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(string, pattern, position, occurrence, modifier) string :需要进行正则处理的字符串 pattern :进行匹配的正则表达式 position :起始位置,从第几个...
oracle中 substring函数的使用
oracle中INSTR和SUBSTR和CaseWhen函数详细用法
js字符串截取函数slice、substring和substr的比较_.docx
oracle dbms_lob
本文实例讲述了php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8用法。分享给大家供大家参考,具体如下: /* *gb2312中文字符串截取 */ function substr_for_gb2312($str,$start,$len=null) { $...
以下的意思是:在字符串中以逗号为索引,获取不同索引位的字符 结果如下: SELECT SUBSTRING_INDEX('15,151,152,16',',',1); ==>得到结果为: 15 SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('15,151,152,16',',',2),...
oracle中instr函数与substr函数详细说明(附实例)[归类].pdf
1. 在JS中函数声明: stringObject.substring(start,stop) start是在原字符串检索的开始位置,stop是检索的终止位置,返回结果中不包括stop所指字符. 如:”hamburger”.substring(4,8) returns “urge” 2. substr...
示例代码,用到了函数substr与iconv_substr,mb_substr 复制代码 代码如下:<html><head><meta charset=’utf-8′><title>截取中文字符串_软件开发网_www.jb51.net</title></head>...
主要介绍了oracle中length、lengthb、substr、substrb函数用法的相关内容,具有一定参考价值,需要的朋友可以参考下。
Oracle的substr函数简单用法 substr(字符串,截取开始位置,截取长度) //返回截取的字 substr(‘Hello World’,0,1) //返回结果为 ‘H’ *从字符串第一个字符开始截取长度为1的字符串 substr(‘Hello World’,1,1) ...
用于大数据后台hive开发,对照DB2的函数列表,有少部分是hive的UDF函数
返回与ASCII()函数返回的相同值. mysql> select ORD('2'); -> 50CONV(N,from_base,to_base) 在不同的数字基之间变换数字.返回数字N的字符串数字,从from_base基变换为to_base基,如果任何参数是NULL,返回NULL...
SELECT SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'),1,5) Day, SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'00',1,0)) H00, SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH...
Oracle分析函数基本概念和语法总结及Regexp_***(regexp_substr,regexp_instr, regexp_like, regexp_replace, regexp_count)用法
常用oracle函数SQL中的单记录函数 CONCAT连接两个字符串; LENGTH返回字符串的长度 SUBSTR(string,start,count)取子字符串,从start开始,取count个
lv_spell:=lv_spell||substr(lv_char,1,1); else lv_spell:=lv_spell||lv_char; end if; end if; end loop; return lv_spell; end; --hanjs,07-10-24,此函数默认返回汉字拼音的首字母,第二个参数不为空则...