不区分大小写重复SQL

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

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

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

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

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

任何建议将不胜感激

解决方法

暂时放弃区分大小写的问题,基本策略是:
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特定的大写转换功能中的第一次用户名以外的所有内容全部包装:

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相关文章