太阳人
我遇到了这句话和东西有什么区别
DECLARE @MyStr nvarchar(max) = 'This is a sentence'
SELECT SUBSTRING(@MyStr, 6, LEN(@MyStr)**-5**)
和
DECLARE @MyStr nvarchar(max) = 'This is a sentence'
SELECT SUBSTRING(@MyStr, 6, LEN(@MyStr))
我运行了两者,后者没有添加任何空格或任何东西。
蒂姆·比格莱森
第三个参数 toSUBSTRING
是要取的子串的长度。在第一个示例中,长度正好覆盖了字符串的其余部分。在第二个示例中,长度超过字符串的实际可用长度 5 个字符。关于长度大于可用长度时会发生什么,我们可以参考SUBSTRING的文档:
length
是一个正整数或 bigint 表达式,指定将返回多少个表达式的字符。如果长度为负,则生成错误并终止语句。如果 start 和 length 的总和大于 expression 中的字符数,则返回从 start 开始的整个 value 表达式。
换句话说,如果length
参数加上传递的起始值大于可用的值,SUBSTRING
则只返回可用的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句