数据库和用户管理方面的一些复杂情况要求在个别用户的行子集字段中定义复杂的 SQL WHERE 子句,以便对一个组或用户可以查看的行进行限制。在定义过滤器时,您可能想引用镜像数据库中的表,对组或用户使用参数,或使用这些方法的组合。有关创建简单水平过滤器的基本步骤,请参阅在预订级别过滤数据。
DB2 Everyplace Sync Server 提供了标准 SQL WHERE 实现的一个子集来与过滤器配合使用。有关子集的语法,请参阅过滤器的语法。
以下示例演示如何引用镜像数据库中的其它表以及对水平过滤使用参数。
假定您管理两个分别名为 Ziptab 和 Business 的表,它们都位于镜像数据库中。Ziptab 包含特定城市的邮政编码(请参阅表 208),而 Business 跟踪一些公司和它们的邮政编码(请参阅表 209)。您想要让 San Jose, California 的用户只查看他们所在城市的商业公司。您已创建一个组并将这些用户指定给了该组。
City | Zipcode |
---|---|
San Jose | 95141 |
San Jose | 95123 |
Los Angeles | 93002 |
Business | Zip |
---|---|
IBM | 95141 |
我的公司 | 95123 |
您的公司 | 93002 |
另一公司 | 94888 |
您将在“行”页的个别用户的行子集字段中输入以下子句:
(Zip) IN (SELECT Zipcode FROM Ziptab WHERE City = ':fcity'):fcity 是 City 列值的参数,对于该组,设置为 San Jose。
然后,完成并关闭“创建预订”笔记本。结果是,在同步之后,这些用户在他们的设备上只看到 Business
表中的下列各行:
Business | Zip |
---|---|
IBM | 95141 |
我的公司 | 95123 |
相关任务
相关参考