我有一个包含多个表的Access DB文件。 为了创建一个带有正则表达式匹配的计算字段,我创建了一个带有数据提取的Tableau工作簿。
我所做的是尝试匹配[Web Location]中包含有效URL的顶级域名,并将其保存在TopLvlDomain字段中:
REGEXP_EXTRACT([Web Location],'(?:\.([a-z]{2,6})(?:\/|$))' )
效果很好并且给了我想要的东西:
如果我转到Tableau中的“预览数据源”选项卡,它会告诉我字段计算无效:
为什么会这样,我该如何解决?
重要的原因是我有另一个包含国家/地区代码的表格,我想加入它以获取完整的国家/地区名称。我知道它并不完全可靠(想想com,org等域名),但为了达到目的,它确实是非常可靠的。
答案 0 :(得分:3)
您的计算是正确的,这可以在Excel(或任何其他支持Tableau的REGEX的数据源)中使用。但是,Access不支持这些Tableau REGEX功能。
REGEXP_EXTRACT(string,pattern)返回字符串的一部分 匹配正则表达式模式。此功能可用 文本文件,Hadoop Hive,Google BigQuery,PostgreSQL,Tableau数据 提取,Microsoft Excel,Salesforce和Oracle数据源。
一个选项,似乎就是你所做的,是创建Access DB的摘录,然后使用它来运行REGEX。您可以刷新数据提取以使其与Access数据库中的数据保持同步。