以下查询不返回任何结果:
select *
from MyTable
where MyVarChar = '99903'
MyVarChar是varchar(20) not null
列。
以下数据存储在表格中(la' select *'):
Id MyVarChar
1 99901
2 99902
3 99903
有趣的是,如果我提供' 99901'或者' 99902'在比较中,我得到了一个结果。
我在比较的两边都试过了ltrim
和rtrim
但没有成功。
我......很困惑。 :P有什么想法吗?
答案 0 :(得分:1)
尝试这样的事情:
SELECT *
FROM MyTable
WHERE MyVarChar LIKE '%99903%';
这将返回99903中的任何内容,所以如果你在最后(或前面)有额外的东西,它仍然可以工作。 RTRIM()
和LTRIM()
应该已经解决了这个问题。
答案 1 :(得分:1)
对@Vladimir建议的varbinary(max)
进行强制转换显示了隐藏的空白:结果是字符串末尾的CR+LF
。