具体来说,Sql Server 2005/T-Sql。我有一个字段,大多数是由两个字符组成的,它们都应该是大写的,但是有一些历史数据早于当前的DB/System,我需要找出哪些记录违反了大写契约。
我以为这会有效:
select * from tbl where ascii(field1) <> ascii(upper(field1))
事实上,它返回了一些记录。它们已经被纠正了,现在查询没有返回任何数据。但是有人告诉我数据库中仍然有混合大小写的数据,我刚找到一个例子:FS和Fs报告相同的ASCII值。
为什么这种方法不可行?有什么更好的方法去解决问题,或者该怎么修改这种方法让它能够正常工作?