gpt4 book ai didi

sql-server - VARCHAR 列上的 WHERE 子句似乎作为 LIKE 操作

转载 作者:行者123 更新时间:2023-12-04 18:33:18 26 4
gpt4 key购买 nike

我偶然发现了一种我以前从未见过的情况。我希望有人可以解释以下内容。

我已经运行了以下查询,希望只得到值恰好等于 1101 的列的结果

select '--' + MyColumn + '--' SeeSpaces, Len(MyColumn) as LengthOfColumn 
from MyTable
where MyColumn = '1101'

但是,我也看到了 1101 的值后跟(我认为是)空格。

所以 SeeSpaces返回
--1101    --

LengthOfColumn返回 4 MyColumnVARCHAR(8), NOT NULL柱子。它的值(包括空格)通过单独的工作流插入。

为什么这个选择不只返回确切的结果?

提前致谢

最佳答案

原因与 SQL Server 将字符串与尾随空格进行比较的方式有关,它遵循 ANSI 标准,因此字符串 '1101' 和 '1101 ' 是等效的。

有关更多详细信息,请参阅以下内容:

INF: How SQL Server Compares Strings with Trailing Spaces

关于sql-server - VARCHAR 列上的 WHERE 子句似乎作为 LIKE 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15247835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com