首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >筛选前2的复制集

筛选前2的复制集
EN

Server Fault用户
提问于 2010-02-02 18:46:03
回答 1查看 68关注 0票数 1

我有一个在合并复制中使用的复制集(SQL 2005)。我正在努力弄清楚如何将前2的过滤器应用到桌子上。

另外,是否有一种方法可以设置一个过滤器,以便它向下滴到子表,或者我需要以不同的方式处理它呢?

我正在看的是一个计划数据库,我正在复制我们用户的笔记本电脑。我只想复制最后两个计划,并且只复制这两个计划的相关数据。例如,有一个药物表,其中列出了与某个计划相关的所有药物。我只想复制药物表上的行,这些行与前2项计划中的一项挂钩。

我不知道该怎么做。我在“发布属性”中看到了筛选器选项,但它是按表显示的,而且我似乎没有前2的选项。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2010-02-02 20:00:29

过滤只能通过WHERE子句进行。你需要把它放到过滤器里,就像这样。

代码语言:javascript
复制
WHERE PlanId IN (SELECT TOP (2) PlanId FROM Plan ORDER BY CreateDate DESC)

如果将其放入每个表的筛选器中,则只会复制这2个计划的行。

若要为筛选器使用多列,这样的“应该”操作。我还没有测试过这个,所以可能需要一些调整才能实现。

代码语言:javascript
复制
WHERE PlanId IN (   
        SELECT PlanId FROM (
            SELECT ROW_NUMBER() OVER (PARTITION BY ClientId, PlanId ORDER BY CreateDate DESC) RowId,
            PlanId, ClientId
            FROM [Plan] a
            where [Plan].PlanId = a.PlanId
                and [Plan].ClientId = a.ClientID
            ) b
        WHERE b.RowId IN (1,2)
        )
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/108874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档