首页 > 解决方案 > 需要通过 SQL 将管道分隔字段与 Presto 中的字符串进行比较

问题描述

样本数据

yourfoo= foo|bar|foo
recofoo= bar

当字段 recofoo 的值与字段 yourfoo 的管道之间的任何字符串匹配时,我需要在 case 语句中进行比较,然后是“Y”,否则为“N”</p>

我试过一堆没有运气的正则表达式。如果这很重要,我正在使用 presto/hive 来编写我的 SQL

谢谢!

标签: sql

解决方案


你在这里真的不需要正则表达式,LIKE会做:

SELECT *
FROM yourTable
WHERE '|' || yourfoo || '|' LIKE '%|' || recofoo || '|%';

对于您提供的示例数据,查询将变为:

SELECT *
FROM yourTable
WHERE '|foo|bar|foo|' LIKE '%|bar|%';

您可以看到这将与示例数据匹配。


推荐阅读