나는 똑같은 두 가지 변형을 시도했다. 첫 번째 버전은 freetexttable
에서 임시 테이블로 다른 인세 트를 선택하고 그 중 하나를 선택합니다. 첫 번째 버전에서 다양한 변형을 시도했습니다 (두 가지 수준의 범위, 그룹 별, 고유 한 및 여러 가지 조합을 정수로 캐스팅합니다.) 첫 번째 쿼리는 값이 각각 137
인 3 개의 행을 일관되게 반환합니다. 두 번째 쿼리는 지속적으로 1 행 137
의 값을 갖는 반환Select가 중복을 반환하는 함수와 구별되는 이유는 무엇입니까?
여기 무슨 일 반환 중복 FREETEXT 않고 왜 그들이 select distinct
으로 제거 또는 group by
참고로하지 않는 이유 :.? 내가 원하는 왜 그런지 고쳐야하는 것이 아닙니다. 이미 적절한 해결 방법이 있습니다.
select * from
(
select distinct [rank] from freetexttable(dbo.vw_PPN, allKeywords, N'foo', 100000)
where [key] = 3781054
) as CT
create table #temp ([rank] int)
insert into #temp
select distinct [rank] from freetexttable(dbo.vw_PPN, allKeywords, N'foo', 100000)
where [key] = 3781054
select * from #temp
drop table #temp
없음, 임시 테이블 버전 수행 중복이 없습니다. 그리고 아마 순위가 플로트라고 생각했을지 모르지만, 실제로 나는 그것을 알아 내기 위해 무작위로 노력하고있었습니다. 부동 소수점 문제가 문제 였다면 (의심 스럽습니다) 내부 선택 영역에 캐스팅 한 다음 외부 선택 영역에서 고유 부분을 선택하면이 문제가 해결됩니다. – Brian