我的C#代码出错,经过调试后发现 这是因为在表中输入时有一个尾随空格。 例如'aaa'
现在在我的C#代码中尝试将组合框的选定值设置为此(组合框作为值为'aaa'的项目,这将失败。
显然解决方案是修复DB'aaa'
现在我去DB
并执行此操作:
Select * from mytable
where Name='aaa'
我得到姓名'aaa'
Select * from mytable
where Name='aaa '
我再次得到姓名'aaa'
Select len(name) from My table
where name ='aaa'
我得到3
我的问题是:如何通过查询表我知道它有'aaa'的额外空间?
答案 0 :(得分:3)
SQL server len函数排除尾随空白。
考虑使用不修剪字符串的DATALENGTH(Transact-SQL)函数。
因此,您可以检查datalength(column) <> datalength(rtrim(column))
是否包含尾随空格。
注意:如果处理unicode字符串,DATALENGTH
将返回两倍的字符数。
答案 1 :(得分:1)
正如Giorgi Nakeuri所解释的那样,'a'和'a'被认为是平等的。但您可以使用LIKE
轻松找到尾随空格:
select * from mytable where name like '% ';
以下是更新方法:
update mytable set name = rtrim(name) where name like '% ';