有没有一种简单的方法来检查字符串中的大写字符?

Is there an easy way to check for upper case characters in strings?

我有一个包含多个电子邮件地址的 Tableau 数据源(原始来源是 MariaDB)。在对数据源进行一些质量检查时,我想确定各种可能的数据输入问题。其中之一是字符串是否以全部小写形式存储。

虽然电子邮件不区分大小写,但数据条目应该确保它们以标准化方式存储,而不仅仅是作为自由文本。但历史数据并未强加此类检查。所以我想确定电子邮件在哪里有大写字符,这是一个(小)信号,表明数据输入不小心。

但是对于 Tableau 2020.2,这似乎很难做到(直接来自源 table 或作为摘录)。例如,无论大小写,测试 lower([Email])=[Email] 是否简单地 returns 对所有电子邮件为真。

在 Tableau 中比较 或检查字符串中的大写字符时,是否有任何简单的方法 强制 区分大小写?

注意:这个问题是关于 Tableau 的,而不是关于解决简单数据库查询中的问题。我使用连接到各种数据源的 Tableau,并且更喜欢 Tableau 内部的通用解决方案,因此数据库设置的细节无关紧要。

Is there any easy way to force case sensitivity in comparisons or to check for upper-case characters in a string?

基本上,您想要 binary。如果字符串具有任何大写字符,则此条件的计算结果为 true

where lower(email) <> binary email

您也可以使用正则表达式:

where email rlike binary '[A-Z]'

您的问题表明您将数据存储在 case-insensitive 字符集/排序规则中。如果情况有意义,那么您应该使用 case-sensitive 设置,这将消除对 binary 的需要,从而使您的查询更多 straight-forward,更少 error-prone,并可能更多高效。

REGEX_MATCH([email],'[A-Z]') 应该是 case-sensitive 而不管数据源,因为根据定义模式 [A-Z] 只匹配大写字母。