sql 服务器 2008 R2 中制表符和空格之间的解析有什么区别

What is the difference when parsing between Tab and Spaces in sql server 2008 R2

我遇到过以下情况

Declare @var int = '       123'  
select @var

Declare @var1 int = '      123'  
select @var1  

对于第一种情况,我在值前面使用了 spaces 并在执行它时 returns 值为 123

在第二种情况下,我在值前面使用了制表符而不是 space,并且在执行时抛出转换错误

谁能告诉我这两种情况有什么区别..

即使你输入了相同数量的 spaces(使用 spaces 然后使用 Tab),它们的字符代码是不同的,这就是 space 和 TAB 在 SQL 服务器中被单独对待。

有关字符代码和字符编码的更多信息可以在以下 2 个链接中找到:-

https://www.computerhope.com/jargon/c/charcode.htm https://www.pcmag.com/encyclopedia/term/51983/standards-character-codes

此外,如果您从数学和逻辑上思考:- 在整数之前有 spaces 没有意义。这就像数字前有零。 例如:-'123'(5 spaces 然后 123)就像 00000123。 space 在整数

之前被修剪的另一个原因