gpt4 book ai didi

sql-server-2008 - 如何使用对它正在搜索的表中的数据有限制的 containstable?

转载 作者:行者123 更新时间:2023-12-04 06:57:57 28 4
gpt4 key购买 nike

我有一个表格,其中包含可以在 sql-server-2008 中搜索的广告。请参阅以下代码段。 ad_search 表中的 is_searchable 基本上是该广告是否应包含在搜索中的标志。

下面的三个例子在我脑海中产生了不合理的输出:

在第一个示例中,返回 1000 条记录。所有 is_searchable 都设置为 0。在这个用例中,这些行对我来说毫无用处。

第二个示例显示了使用 where 子句过滤掉不正确的 is_searchable 记录的结果。因为在查询的 from 部分的 containstable 中没有返回任何内容,所以在应用 where 子句时没有返回任何内容。

第三个示例仅将 top_n_by_rank 从 1000 更改为 4000。

所以我的问题是如何使用“is_searchable = 1”子句获得前 1000 或 n 个结果?

use live;

declare @search_text as varchar(2000) = '"*interlet*"'


--- TOP 1000 without clause (returns 1000 rows (all with is_searchable = 0)
select is_searchable, *
from CONTAINSTABLE (ad_search, searchText, @search_text, 1000) AS KEY_TBL
inner join ad_search (nolock) ON ad_search.ad_search_id = KEY_TBL.[KEY]
inner join ad_search_view_data on ad_search_view_data.ad_search_id = ad_search.ad_search_id


--- TOP 1000 with "where ad_search.is_searchable = 1" clause returns 0 rows
select is_searchable, *
from CONTAINSTABLE (ad_search, searchText, @search_text, 1000) AS KEY_TBL
inner join ad_search (nolock) ON ad_search.ad_search_id = KEY_TBL.[KEY]
inner join ad_search_view_data on ad_search_view_data.ad_search_id = ad_search.ad_search_id
where ad_search.is_searchable = 1

-- TOP 4000
select is_searchable, *
from CONTAINSTABLE (ad_search, searchText, @search_text, 4000) AS KEY_TBL
inner join ad_search (nolock) ON ad_search.ad_search_id = KEY_TBL.[KEY]
inner join ad_search_view_data on ad_search_view_data.ad_search_id = ad_search.ad_search_id
where ad_search.is_searchable = 1

最佳答案

尝试这个:

DECLARE @N int
SET @N=325

SELECT TOP(@N)
is_searchable, *
from CONTAINSTABLE (ad_search, searchText, @search_text) AS KEY_TBL
inner join ad_search (nolock) ON ad_search.ad_search_id = KEY_TBL.[KEY]
inner join ad_search_view_data on ad_search_view_data.ad_search_id = ad_search.ad_search_id
where ad_search.is_searchable = 1
ORDER BY KEY_TBL.Rank DESC

@N 可以是 1000 或任何你想要的

关于sql-server-2008 - 如何使用对它正在搜索的表中的数据有限制的 containstable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2312840/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com