同じもので 2 つの異なるバリエーションを試しました。最初のバージョンはから選択しfreetexttable
、他のインセットは一時テーブルに挿入し、そこから選択します。最初のバージョンでさまざまなバリエーションを試しました (スコープの両方のレベルで、group by、distinct、[rank] を整数にキャストするいくつかの組み合わせを選択します。それにもかかわらず、最初のクエリは一貫してそれぞれが値を持つ 3 行を返します137
が、 2 番目のクエリは、 の値を持つ 1 行を一貫して返します137
。
ここで何が起こっているのですか?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