2014-07-13 4 views
1

답이없는 질문 (태그가있는 질문)으로 정렬 된 태그를 나열하는 쿼리를 만들고 싶습니다. 그러나 태그는 공백으로 저장되어 있으므로 varchar으로 이해할 수 있습니다 SQL Server (which StackExchange uses)에는 문자열을 분할하는 함수가 없으므로 진행 방법에 대해 확신이 없습니다. 그러나 그들은 모두 우편으로 그룹화하고, 올바르게 태그를 반환데이터 탐색기 게시물에서 태그 분할하기

SELECT DISTINCT Tags from Posts WHERE AnswerCount = 0; 

: 나는 많은하지만 every result 둘러 보았다 한

Results

나는 함수를 작성하고있다 찾을 내가 쓴 태그를 위로 나눌 수있는 해결책이지만 데이터 교환에서 함수를 만들 수는 없습니다. 모든 태그를 하나의 열로 가져 오는 또 다른 방법이 있습니까?

+0

태그 테이블을 regexp.http : //stackoverflow.com/questions/8928378/using-regex-in-sql-server에서 분할하여 가져온 경우 쉽게 될 수 있습니다. – Charlesliam

+0

별도의 태그 테이블이 있습니까? ? –

+0

@GordonLinoff 네, 그렇지만 저와 포스트 테이블 사이에 아무 관계가 없습니다. – MrLore

답변

1

당신은 비효율적이 like를 사용하여 조인하여이 작업을 수행 할 수 있습니다

select t.TagName, count(p.Tags) 
from Tags t left join 
    Posts p 
    on p.Tags like '%' + t.TagName + '%' 
where p.AnswerCount = 0 
group by t.TagName; 

당신은 정말 게시물에 게시물 당 및 태그 당 하나의 행으로 별도의 접합 테이블, PostTags를 사용해야합니다. 이 유형의 쿼리는 훨씬 간단합니다. SQL은 목록을 저장하는 좋은 기본 메커니즘을 가지고있다. 그것은 문자열이 아닙니다. 이것을 테이블이라 부릅니다. 선택이 있다면 사용하십시오.

+0

이름을 약간 수정하고 공백을 제거하면 완벽하게 고마워했습니다. – MrLore

관련 문제