我有一个保存十六进制ID的varchar(40)列,我需要大写的ID,如 id_xxxx ;其中xxxx是十六进制数0-9 A-F 前3个字母必须是小写字母。
1)有一种方法可以获得十六进制数不是大写的ID列表吗?
2)有一种方法可以让数据库引擎将 ID_abc1 错误的ID转换为 id_ABC1 吗?
答案 0 :(得分:1)
使用以下表达式将所有值转换为正确的大小写:
concat('id_', upper(substr(myHexId, 4)))
要查找非大写的所有十六进制值:
where substr(myHexId,4) != upper(substr(myHexId,4))
查找所有格式错误的值(" id _"或十六进制不正确):
where myHexId != concat('id_', upper(substr(myHexId, 4)))