sql - 带有 rlike 的雪花正则表达式返回布尔值会产生意想不到的结果
问题描述
如果字段“名称”包含字符串“IOS_PROD”,则需要返回 1 或 0。试过:
case when rlike(c.name, 'IOS_PROD') then 1 else 0 end as IOS
返回所有 0,而不是预期的 1 和 0 的混合。如何以这种方式进行正则表达式并返回 1 或 0?
使用以下方法验证基础数据:
select name, count(1) from table group by 1
当然,名称包含“IOS_PROD”但不包含的情况混杂,所以我的正则表达式有缺陷。
解决方案
首先,如果返回0
s,则不匹配。
其次,您可以为此使用内置 SQLLIKE
运算符:
(case when c.name like '%IOS\_PROD%' then 1 else 0 end) as IOS
一个问题可能是大写与小写,所以也许:
(case when upper(c.name) like '%IOS\_PROD%' then 1 else 0 end) as IOS
推荐阅读
- sql - 检查列是否为空但我收到错误。(Vb.net)
- mysql - 我是否有效地获得用户的余额排名
- reactjs - AWS Amplify Auth:如何禁用 AmplifyConfirmSignUp?
- google-app-engine - 与 Google Drive 集成的 Google App Engine
- javascript - 使用 JavaScript 从文本中删除方括号
- automated-tests - Browserstack 自动化:iOS 上的 HTTP 基本身份验证
- java - 有没有办法共享一个使用 derby.jar 文件而不发送 JDBC derby 驱动程序的 java 项目?
- python - Pip 错误:无法使用创建进程
- email - 带有附件问题的电子邮件
- javascript - THREE.js 中的 Shadertoy