You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询Buyer表中含大写字符的sEmailAddress字段数据

解决方法:找出包含大写字符的邮箱地址

没问题,我来帮你搞定这个需求!要从Buyer表的sEmailAddress字段里筛选出所有包含大写字母的邮箱,核心是利用数据库的大小写敏感比较或正则匹配能力。不同数据库的写法略有区别,咱们分常见类型来给你具体的查询语句:

MySQL/MariaDB 写法

MySQL默认不区分大小写,所以需要用BINARY强制按二进制值比较,或者用正则匹配大写字符:

方法1:正则匹配(带二进制校验)

SELECT sEmailAddress
FROM Buyer
WHERE BINARY sEmailAddress REGEXP '[A-Z]';

方法2:对比原字段与转小写后的字段

SELECT sEmailAddress
FROM Buyer
WHERE BINARY sEmailAddress != LOWER(sEmailAddress);

原理:如果原字段和全小写版本不一样,说明里面存在大写字符。

SQL Server 写法

如果你的SQL Server用的是默认不区分大小写的排序规则,需要指定区分大小写的排序规则,或者用正则(2016及以上版本支持):

方法1:指定区分大小写排序规则对比

SELECT sEmailAddress
FROM Buyer
WHERE sEmailAddress COLLATE SQL_Latin1_General_CP1_CS_AS != LOWER(sEmailAddress);

方法2:正则匹配(SQL Server 2016+)

SELECT sEmailAddress
FROM Buyer
WHERE sEmailAddress REGEXP '[A-Z]';

PostgreSQL 写法

PostgreSQL默认区分大小写(除非字段特意设置了不区分规则),直接用正则或对比即可:

方法1:正则匹配

SELECT sEmailAddress
FROM Buyer
WHERE sEmailAddress ~ '[A-Z]';

方法2:对比原字段与转小写后的字段

SELECT sEmailAddress
FROM Buyer
WHERE sEmailAddress != LOWER(sEmailAddress);

Oracle 写法

Oracle默认不区分大小写,需要用REGEXP_LIKE并指定大小写敏感参数:

SELECT sEmailAddress
FROM Buyer
WHERE REGEXP_LIKE(sEmailAddress, '[A-Z]', 'c');

这里的'c'表示启用大小写敏感匹配。

所有上述语句都只会返回符合条件的邮箱列表,不会对数据库数据做任何修改,完全符合你的需求。如果你的数据库有特殊的排序规则设置,可以根据实际情况微调~

内容的提问来源于stack exchange,提问作者Kieran Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:09:20