不同的数据库下截取字符串的方法函数是不同的,在sql server下用的是substring(expression, start, length),Oracle下用的是substr(expression, start, length),参数都是一致的,要截取的字符串,起始位置,长度。其中的差异部门就在第二个参数起始位置。下面拿"Hello"做例子
1:SQL Server 下截取字符串
返回SQL Server 中的字符、二进制、文本或图像表达式的一部分。
substring('Hello',-2,3)--He
substring('Hello',0,3)--He
substring('Hello',1,3)--Hel
substring('Hello',1,5)--Hello
substring('Hello',1,6)--Hello
substring('Hello',2,6)--ello长度大于要截取的字符串,返回起始位置的整个值表达式
substring('Hello',6,1)--如果起始位置大于要截取的最大长度返回空
2:Oracle 下截取字符串
oracle与sqlserver不同的地方就在于起始位置为负数的时候,和起始位置为0时。substr('Hello',-2,3)--lo从右向左的第二个开始
substr('Hello',-4,3)--ell
substr('Hello',0,3)--Hel
substr('Hello',1,3)--Hel
substr('Hello',1,5)--Hello
substr('Hello',1,6)--Hello
substr('Hello',2,6)--ello
substr('Hello',6,1)--
打赏