sql - 需要通过 SQL 将管道分隔字段与 Presto 中的字符串进行比较
问题描述
样本数据
yourfoo= foo|bar|foo
recofoo= bar
当字段 recofoo 的值与字段 yourfoo 的管道之间的任何字符串匹配时,我需要在 case 语句中进行比较,然后是“Y”,否则为“N”</p>
我试过一堆没有运气的正则表达式。如果这很重要,我正在使用 presto/hive 来编写我的 SQL
谢谢!
解决方案
你在这里真的不需要正则表达式,LIKE
会做:
SELECT *
FROM yourTable
WHERE '|' || yourfoo || '|' LIKE '%|' || recofoo || '|%';
对于您提供的示例数据,查询将变为:
SELECT *
FROM yourTable
WHERE '|foo|bar|foo|' LIKE '%|bar|%';
您可以看到这将与示例数据匹配。
推荐阅读
- php - sql 数据库中雄辩的 laravel 中文支持
- javascript - 在 DomParser 中使用 hasAttribute
- php - 使用 WebfactoryPolyglotBundle 会导致错误“在类 'AppBundle\Entity\Film' 上找不到字段 'id' 的映射。”
- c# - 如何将后端状态消息传达给前端?
- scala.js - binding.scala + scalatags 中的反应组件
- javascript - 如何通过组合字符和数字生成 UniqueID,并在 ECMAScript 中应用填充
- javascript - 如何重定向到另一个页面并在 reactjs 中使用道具
- node.js - 如何在 Node.JS 服务器中使用 Typescript 实现 Pusher
- testing - 气流测试模式 xcom 拉/推不工作
- javascript - 使用 Typescript 中的新对象更新 const 对象的所有属性