gpt4 book ai didi

sql - 区分字符数据库字段中的 "AB"和 "Ab"

转载 作者:太空狗 更新时间:2023-10-30 01:58:58 26 4
gpt4 key购买 nike

特别是 Sql Server 2005/T-Sql。我有一个主要由两个字符组成的字段,它们都应该是大写的,但是有一些遗留数据早于当前的数据库/系统,我需要弄清楚哪些记录违反了大写套管契约。

我认为这会起作用:

select * from tbl where ascii(field1) <> ascii(upper(field1))

确实它返回给我一些记录。它们已被更正,现在该查询不返回任何数据。但是有人告诉我数据库中仍然存在混合大小写的数据,我刚刚找到了一个示例:“FS”和“Fs”都报告相同的 ascii 值。

为什么这种方法有缺陷?什么是解决此问题的更好方法,或者我如何修复此方法以使其正常工作?

最佳答案

如果所有的日期都应该是大写的,就做一个更新

update tbl
set field1 = upper(field1)

但要回答您最初的问题,此查询应该会为您提供预期的结果:

select * from tbl
where field1 COLLATE Latin1_General_CS_AS <> upper(field1)

编辑:刚刚注意到 Ian 也发布了使用 COLLATE 的建议

关于sql - 区分字符数据库字段中的 "AB"和 "Ab",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/511381/

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