【发布时间】:2019-05-17 09:28:30
【问题描述】:
我有一个名为“Bakery Activity”的列,其值都是如下所示的 JSON:
{"flavors": [
{"d4js95-1cc5-4asn-asb48-1a781aa83": "chocolate"},
{"dc45n-jnsa9i-83ysg-81d4d7fae": "peanutButter"}],
"degreesToCook": 375,
"ingredients": {
"d4js95-1cc5-4asn-asb48-1a781aa83": [
"1nemw49-b9s88e-4750-bty0-bei8smr1eb",
"98h9nd8-3mo3-baef-2fe682n48d29"]
},
"numOfPiesBaked": 1,
"numberOfSlicesCreated": 6
}
我正在尝试提取在 Tableau 中使用正则表达式函数烘焙的馅饼的数量。具体来说,这个:
REGEXP_EXTRACT([Bakery Activity], '"numOfPiesBaked":"?([^\n,}]*)')
但是,当我尝试将此计算字段放入我的文本表时,我收到一条错误消息:
错误:函数 regexp_matches(jsonb, unknown) 不存在;
执行查询时出错
值得注意的是,我的数据源是 PostgreSQL,Tableau 正则表达式函数支持;并非我的所有条目都包含numOfPiesBaked;当我在模拟器中运行它时,我得到了正确的提取(实际上,我得到了"numOfPiesBaked": 1",但删除字段名称是另一个问题)。
什么可能导致这个错误?
【问题讨论】:
-
您使用的是
REGEXP_EXTRACT...还是REGEXP_MATCHES?请发布您的整个查询。 -
@GMB 我正在使用 REGEXP_EXTRACT,但错误文本指的是 regexp_matches。我发布的公式是我的整个计算字段
-
尝试将
::text添加到第二个参数。 -
@GordonLinoff 工作完美,谢谢!
-
@yoni:我猜你的意思是投射 first 参数?
标签: sql regex postgresql tableau-api