Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite使用GROUP BY,不区分大小写_Sql_String_Sqlite_Group By - Fatal编程技术网

SQLite使用GROUP BY,不区分大小写

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; 您可以以较低的级别分组(电子邮件): 或者在分组依据子

我的表格中有一列电子邮件地址,其中地址可能都是小写、大写、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;

您可以
以较低的级别分组(电子邮件)

或者在
分组依据
子句中使用
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;