【发布时间】:2018-12-28 21:41:04
【问题描述】:
我有一列包含扫描的条形码字符串。我想找到一个特定的匹配项并在新列中返回字符串“match”和“noMatch”
条形码的正则表达式是
'[0-9]{5,8}\%[0-9]*\%'
例如13412432%10000%
我的查询是
SELECT
report."barcode" SIMILAR TO '[0-9]{5,8}\%[0-9]*\%',
(CASE report."barcode" WHEN (report."barcode" SIMILAR TO '[0-9]{5,8}\%[0-9]*\%') THEN 'match'
ELSE 'noMatch'
END) AS matchColumn
FROM report
但是我总是收到这个错误
错误:运算符不存在:text = boolean 第 3 行:(CASE 报告。"barcode" WHEN (report."barcode...
提示:没有运算符匹配给定的名称和参数类型。您可能需要添加显式类型转换。 SQL 状态:42883 字符:106
我对 SQL 很陌生,所以当文档说它需要一个真/假语句之后,我想我可以使用 SIMIAR TO 模式匹配,因为它返回布尔值。
【问题讨论】:
标签: sql regex postgresql pattern-matching