如何 return 字段中的一组唯一字符 (SQL)?

how to return a unique set of characters within a field (SQL)?

基本上我正在尝试 return 标签列中包含 up_up1_up2_up3、up4_ 的任何字段。

我面临的问题是我只想显示这些标签而不是其他标签。

该字段的每一行都包含混合字符,因此我发现很难使用 CASE 语句 substr。

我已经能够 return 整个领域使用这个 sql:

select tags
from products
where tags like '%up_%'
   or tags like '%Up*_%'

有什么想法吗?

非常感谢, 乔纳森

编辑 列中的数据:

almost gone, 
Autumn/Winter, 
BEIGE
Coats Jackets
Cream, Gender_Female
ISAWITFIRST.com 
Neutrals 
Pcat-Coats & Jackets
S
Sale
SALE:New In Coats & Jackets
Sale:SALE:New In Clothing
Scat-Coat 
Up1_Cup-Detail-Sheer-Panel-Bodysuit-Cream-Jl33334
Up_High-Waisted-Skinny-Trousers-White-Jl34117

我希望能够 return 仅 UP1_ 和 Up_ 标签。并想删除其余部分..

编辑 2

此列由外部站点填充

例如,对于 PostgreSQL,您可以使用以下内容:

select substring(tags from '[Uu]p[0-9]?_')
from products
where tags like '%up_%'
   or tags like '%Up*_%'

请根据您的具体需要调整第一行中的正则表达式。

对于其他数据库系统,将子字符串函数交换为以下之一:

对于 TSQL,请查看 "patindex" 函数。 对于 Athena,请考虑 REGEXP_SUBSTR 函数,如下所述:https://docs.aws.amazon.com/redshift/latest/dg/REGEXP_SUBSTR.html