SQLite使用GROUP BY,不区分大小写
我的表格中有一列电子邮件地址,其中地址可能都是小写、大写、CAMELLCASE等等。 我如何修改我的查询,以便example@gmail.com和EXAMPLE@GMAIL.COM将被分组在一起 这是我真正的疑问:SQLite使用GROUP BY,不区分大小写,sql,string,sqlite,group-by,Sql,String,Sqlite,Group By,我的表格中有一列电子邮件地址,其中地址可能都是小写、大写、CAMELLCASE等等。 我如何修改我的查询,以便example@gmail.com和EXAMPLE@GMAIL.COM将被分组在一起 这是我真正的疑问: SELECT count(Email) as Number, Email FROM tbl_SAP_Users GROUP BY Email HAVING Number > 1 ORDER BY Number DESC; 您可以以较低的级别分组(电子邮件): 或者在分组依据子
SELECT count(Email) as Number, Email
FROM tbl_SAP_Users
GROUP BY Email
HAVING Number > 1
ORDER BY Number DESC;
您可以
以较低的级别分组(电子邮件)
:
或者在分组依据
子句中使用COLLATE NOCASE
:
SELECT count(*) as Number, Email
FROM tbl_SAP_Users
GROUP BY Email COLLATE NOCASE
HAVING Number > 1
ORDER BY Number DESC;
您可以尝试使用该函数将它们全部小写
您可能还希望使用来处理两端的空白
SELECT count(Email) as Number, Email
FROM tbl_SAP_Users
GROUP BY LOWER(TRIM(Email))
HAVING Number > 1
ORDER BY Number DESC;
这完全满足了我的需要,但汤姆·斯莫尔伍德也解决了一个我没有意识到的问题。尽管如此,谢谢你。@SebastianS,你的问题中可能没有描述其他问题。你不会希望我们猜吧?我不会。如果我发现更多问题,我将更新问题。或者更好,我正在查找如何使用lower()和trim()等操作数据。@SebastianS如果您不这样做,那么您应该接受解决您在问题中描述的问题的答案,因为如果您的电子邮件中有前导空格或尾随空格,那么GROUP BY子句将在不同的组中分组
'a'
和'a'
,但这不是您所要求的。
SELECT count(Email) as Number, Email
FROM tbl_SAP_Users
GROUP BY LOWER(TRIM(Email))
HAVING Number > 1
ORDER BY Number DESC;