在sql中,是否可以按匹配某种模式的字段进行分组?

在sql中,是否可以按匹配某种模式的字段进行分组?,sql,sql-like,Sql,Sql Like,在SQL中,是否可以像模式那样按进行分组?我想实现这样的目标: id|name 1 | Mike 2 | Bob 3 | Bill 4 | Alice 如果您希望同一条记录根据其匹配的模式多次出现,则应使用多个SELECT语句和相关筛选器,并将它们合并在一起。您可以在一个集合结构中查询模式,然后分组或区分以删除DUP,下面是使用MSSQL CTE的一种方法(临时表/表变量也适用) B* | Bob | Bill *l* | Bill | Alice Mike|

在SQL中,是否可以像模式那样按
进行分组?我想实现这样的目标:

id|name 1 | Mike 2 | Bob 3 | Bill 4 | Alice
如果您希望同一条记录根据其匹配的模式多次出现,则应使用多个
SELECT
语句和相关筛选器,并将它们合并在一起。

您可以在一个集合结构中查询模式,然后分组或区分以删除DUP,下面是使用MSSQL CTE的一种方法(临时表/表变量也适用)

B* | Bob | Bill *l* | Bill | Alice Mike| Mike
Select 'B*' as Mask, Name
from Table
WHERE Name like 'B%'
UNION ALL
Select '*l*' as Mask, Name
from Table
WHERE Name like '%l%'
UNION ALL
Select 'Mike' as Mask, Name
from Table
WHERE Name like 'Mike'
with match (pattern) as (
          select 'B%'
    union select '%l%' 
    union select 'Mike' 
)
select
    pattern,
    name
from TABLE, match where TABLE.name like match.pattern
group by pattern, name

==
%l%     Alice
%l%     Bill
B%      Bill
B%      Bob
Mike    Mike