检查字符串是不是存在子字符串

Posted

技术标签:

【中文标题】检查字符串是不是存在子字符串【英文标题】:Check string for substring existence检查字符串是否存在子字符串 【发布时间】:2020-11-02 08:28:01 【问题描述】:

如何检查某个子字符串(例如18UT)是否是列中字符串的一部分?

Redshifts 的 SUBSTRING 函数允许我根据起始索引 + 子字符串的长度“剪切”某个子字符串,但不检查列的值中是否存在特定的子字符串。

例子:

+------------------+
| col              |
+------------------+
| 14TH, 14KL, 18AB |
| 14LK, 18UT, 15AK |
| 14AB, 08ZT, 18ZH |
| 14GD, 52HG, 18UT |
+------------------+

想要的结果:

+------------------+------+
| col              | 18UT | 
+------------------+------+
| 14TH, 14KL, 18AB | No   |
| 14LK, 18UT, 15AK | Yes  |
| 14AB, 08ZT, 18ZH | No   |
| 14GD, 52HG, 18UT | Yes  |
+------------------+------+

【问题讨论】:

【参考方案1】:

这是一种选择:

select col,
    case when ', ' || col || ', ' like '%, 18UT, %' then 'yes' else 'no' end has_18ut
from mytable

虽然这将解决您的直接问题,但应注意,将分隔列表存储在数据库表中是不好的做法,应该避免。每个值都应该放在单独的行中。

【讨论】:

简洁优雅,谢谢!我明白你的意思,在处理这些数据时我的数据心脏流血(特别是因为列中有不同数量的 4 字母值,从 1 到 17 个不同的值......),但我无法做到到目前为止,关于它的内容很多。

以上是关于检查字符串是不是存在子字符串的主要内容,如果未能解决你的问题,请参考以下文章

PB中取字符串子串的函数是啥

如何检查字符串是不是包含 JavaScript 预定义数组中存在的子字符串?

如何更改python字符串子字符串信息

数组篇在python中如何查找最长字符串子串

在 SQL Server 中检查逗号分隔字符串中是不是存在子字符串的最有效方法

[在python中使用正则表达式搜索字符串子字符串