2010-07-28 1 views
1

SQL에서는 LIKE 패턴으로 그룹화 할 수 있습니까? 내가 패턴 'B의 *', '* 리터 *'와 '마이크'를 일치시켜 그룹을 좀하고 싶습니다 예를 들어 SELECT name from users group by _pattern_
: 같은 쿼리를 수행 한 후sql에서 일부 패턴과 일치하는 필드를 그룹화 할 수 있습니까?

id|name 
1 | Mike 
2 | Bob 
3 | Bill 
4 | Alice 

과 : 나는 이런 식으로 뭔가를 달성하고 싶습니다 이 같은 기록이 일치하는 패턴에 따라 여러 번 표시 할 경우

 
B* | Bob 
    | Bill 
*l* | Bill 
    | Alice 
Mike| Mike 
+0

모든 답변 주셔서 감사합니다. – wlk

답변

1
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' 
0

, 당신은 관련 필터와 012 여러 SELECT 문을 사용해야합니다 출력을 줄 것이다그들 모두 함께 ...

0

다음은 GROUP BY 또는 DISTINCT를 사용하여 dups를 제거하는 패턴을 쿼리 할 수 ​​있습니다. 아래는 MSSQL CTE (temp 테이블/테이블 var도 작동합니다)의 한 방법입니다.

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