gpt4 book ai didi

SQL - 为什么参数被修剪

转载 作者:行者123 更新时间:2023-12-02 02:36:30 27 4
gpt4 key购买 nike

我有一个表 (t),其中列 (c) 定义为 varchar 20,包含值“a”、“b”和“c”

如果我执行下面的sql,返回一个值:

select * from table where c = 'a    '

为什么?

我假设它以某种方式转换/修剪参数,但为什么呢?

我将如何真正搜索 'a '

最佳答案

要将它与 varchar 列进行比较,您的字符串文字也必须是 varchar 类型。 Varchar 确实会修剪额外的结尾空格。它变化,因此是 VARchar。普通的 char 类型不会修剪空格,如果需要的话,实际上会在文字的末尾附加额外的空格。您可以检查这一点(并使用 LEN() 函数修复您的搜索:

 declare @a varchar(20) = 'a     '
select * from t where c = @a and len(@a) = Len(c)

关于SQL - 为什么参数被修剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1377095/

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