sql - 想要在数据中找到单个字符“Y”,它可以在列表中的任何位置,但必须是单个“Y”
问题描述
想要在数据中找到单个字符“Y”,它可以在列表中的任何位置,但必须是单个“Y”
样本数据:
Value
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNN
NNNNNNNNNNNNNYNNNNNNNNNYNNNNNNNN
NNNNNNNNNNNNYNNNNNNYNNNNNNNYNNNN
NNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNN
YNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
期待结果
Value
NNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNN
NNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNN
YNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
解决方案
您可以使用LIKE
:
where value like '%Y%' and
value not like '%Y%Y%'
您还可以使用replace()
字符串的长度。像这样的东西:
where length(value) = length(replace(value, 'Y', '')) + 1
如果您想找到 3 到 7 个“Y”,这会更方便一些。
推荐阅读
- php - 我可以使用 google drive api 上传受密码保护的 pdf 吗?
- c++ - 使用 noexcept 运算符依赖
- postgresql - Postgres - 将最近邻距离插入另一个表
- azure - 您如何处理用于 Azure VM 的 Terraform 中有多个 storage_os_disk 块?
- java - 使用 Java 使用 Sparkpost 发送电子邮件
- windows - 在 Azure 中监视 Windows 事件(例如 MSSQLServer)?
- docker - Jenkins Slave 上的字符编码问题
- javascript - 二进制数的角度输入掩码
- java - 如何从泛型类中调用方法作为参数
- php - 在 Woocommerce 电子邮件通知中将总税额添加为单独的行