Transact-Sql左函数输出

Transact-Sql左函数输出,sql,tsql,select,Sql,Tsql,Select,现在,第一个选择输出'ABCD456',该系列函数的计算结果为 正好是第二个select中左函数的第一个参数 第二次选择按预期返回'ABCD' 第三选择返回“ABC” 为什么??它不也应该输出“ABCD”吗? 有人知道吗? 提前谢谢。如果你这样做,会更清楚 select replace(stuff('123456',2,2,'ABCD'),'1',' ') select LEFT('ABCD456',4) select left(replace(stuff('123456',2,2,'ABC

现在,第一个选择输出'ABCD456',该系列函数的计算结果为 正好是第二个select中左函数的第一个参数 第二次选择按预期返回'ABCD' 第三选择返回“ABC”

为什么??它不也应该输出“ABCD”吗? 有人知道吗?
提前谢谢。

如果你这样做,会更清楚

select replace(stuff('123456',2,2,'ABCD'),'1',' ')

select LEFT('ABCD456',4)

select left(replace(stuff('123456',2,2,'ABCD'),'1',' '),4)
返回

select '[' + left(replace(stuff('123456',2,2,'ABCD'),'1',' '),4) + ']'
有一个引导空间

选择素材('123456',2,2,'ABCD')
给出
1ABCD456

然后用空格替换1

[ ABC]