不区分大小写重复SQL

前端之家收集整理的这篇文章主要介绍了不区分大小写重复SQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有一个users表,user.username有很多重复,如:

用户名用户名,并使用RnAme
约翰和约翰和约翰

这是一个错误,这三个记录应该只有一个.

我试图提出一个SQL查询,列出他们创建日期排序的所有这些情况,因此最理想的结果应该是这样的:

@H_502_9@username jan01 useRnAme jan02 Username jan03 john feb01 John feb02 jOhn feb03

任何建议将不胜感激

解决方法

暂时放弃区分大小写的问题,基本策略是: @H_502_9@SELECT username,create_date FROM your_table WHERE username IN (SELECT username FROM your_table GROUP BY username HAVING COUNT(*) > 1) ORDER BY username,create_date

许多RDBMS(包括假设您使用CHAR或VARCHAR作为用户名列的MysqL),默认情况下执行不区分大小写的搜索.对于这些数据库,上述解决方案将会起作用.为了解决其他产品的区分大小写问题,将包含除RDBMS特定的大写转换功能中的第一次用户名以外的所有内容全部包装:

@H_502_9@SELECT username,create_date FROM your_table WHERE UPPER(username) IN (SELECT UPPER(username) FROM your_table GROUP BY UPPER(username) HAVING COUNT(*) > 1) ORDER BY username,create_date

猜你在找的MsSQL相关文章