加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

不区分大小写重复SQL

发布时间:2020-12-12 08:51:54 所属栏目:MsSql教程 来源:网络整理
导读:所以我有一个users表,user.username有很多重复,如: 用户名和用户名,并使用RnAme 约翰和约翰和约翰 这是一个错误,这三个记录应该只有一个. 我试图提出一个SQL查询,列出他们创建日期排序的所有这些情况,因此最理想的结果应该是这样的: username jan01useRnAme
所以我有一个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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读