如何在字段(SQL)中返回一组唯一的字符?

如何在字段(SQL)中返回一组唯一的字符?,sql,amazon-athena,Sql,Amazon Athena,基本上,我试图返回标记列中包含up_u1_u2_u3,up4_3的任何字段 我面临的问题是,我只想显示这些标签,而不想显示其他标签 该字段每行包含混合字符,因此我发现很难使用CASE语句substr 我已经能够使用以下sql返回整个字段: select tags from products where tags like '%up_%' or tags like '%Up*_%' 有什么想法吗 非常感谢,, 乔纳森 编辑 列中的数据: almost gone, Autumn/Winte

基本上,我试图返回标记列中包含up_u1_u2_u3,up4_3的任何字段

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

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

我已经能够使用以下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
我希望能够只返回UP1和Up标记。我想把剩下的拿走

编辑2


此列由外部站点填充。例如,对于PostgreSQL,您可以使用以下内容:

select substring(tags from '[Uu]p[0-9]?_')
from products
where tags like '%up_%'
   or tags like '%Up*_%'
请根据您的具体需要调整第一行中的正则表达式

对于其他DB系统,将substring函数替换为以下函数之一:

select substring(tags from '[Uu]p[0-9]?_')
from products
where tags like '%up_%'
   or tags like '%Up*_%'
对于TSQL,请查看“patindex”-函数。
对于<强>雅典娜<强>,请考虑ReGuffSypScript函数,如这里所描述的:

添加一些示例表数据以及预期结果。(作为格式化文本,而不是图像)并在开始之前查看。您使用的是哪种dbms?您所说的“只显示这些标记而不显示其他标记”是什么意思。是否要跳过除标记以外的所有字符?表有列,而不是字段。SQL
case
是一个表达式,而不是一个语句。@jarlh OP指的是列中的字段(
tags
)。OP:这可能是某个json列吗?请发布一些示例数据和预期结果。语法错误:第1:8行:函数substr的意外参数(varchar,varchar(12))。预期:substr(varchar(x),bigint,bigint),substr(varchar(x),bigint),substr(char(x),bigint),substr(char(x),bigint)以上是我收到的错误,我也尝试过substr。不要让雅典娜尝试,但我认为应该是
REGEXP\u substr(标记,[Uu]p[0-9]?)
不幸的是,这个表达式是我没有使用的红移术语。谢谢你的帮助。不,只是标准的split_部分,substr(),但它的功能与正则表达式不同。谢谢你的帮助,但我已经设法在python中操作数据了!