不同的数据库下截取字符串的方法函数是不同的,在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) --
打赏