在substring
上提供负值是什么意思?
以下代码的输出是什么?
Declare @Strings VARCHAR(20)
Select @Strings ='Lakhan Pal Garg'
Select SUBSTRING(@Strings, -9, 16)
Lakhan 的价值如何得到答案?
答案 0 :(得分:4)
来自 SUBSTRING
:
启动
是一个整数或bigint表达式,指定返回字符的起始位置。 如果start小于1,则返回 表达式将从指定的第一个字符开始 表达。在这种情况下,返回的字符数 是start + length-1或0之和的最大值。 If start大于值中的字符数 表达式,返回零长度表达式。
长度
是一个正整数或bigint表达式,指定将返回表达式的多少个字符。如果长度为负, 生成错误并终止语句。如果总和 start和length大于in中的字符数 表达式,返回从start开始的整个值表达式。
Declare @Strings VARCHAR(20)
Select @Strings ='Lakhan Pal Garg'
Select SUBSTRING(@Strings,-9,16)
从开始 MAX(-9 + 16 - 1, 0) = 6
所以你的查询与:
相同Select SUBSTRING(@Strings,1,6)
的 LiveDemo
强>
输出:Lakhan