> For the complete documentation index, see [llms.txt](https://learn.capstorm.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.capstorm.com/reference/archive-tab/archive-policy-editor/policy-filter-rules/sql-predicate-filter-rule.md).

# SQL Predicate Filter Rule

A *SQL Predicate Filter Rul* e is useful when other filtering techniques are insufficient and it is possible to write a database SQL fragment to identify records that match a snapshot policy. It is rare to need this filter rule because filtering can typically be accomplished using the graphical *Column Expression Filter Rule*.

A *SQL Predicate Filter Rule* has a single configuration parameter: a fragment of database specific SQL will be added to the WHERE clause of a SQL statement generated by CopyStorm. Example:

* `SELECT Id FROM Account WHERE Id IN (…) AND (configuration parameter from SQL Predicate Filter)`

If the argument to a *SQL Predicate Filter Rule* was “RecordAge\_\_c>46 OR alwaysSnapshot\_\_c=1” then SQL statements generated by CopyStorm would look like:

* `SELECT Id FROM Account WHERE Id IN (…) AND (RecordAge__c>46 OR alwaysSnapshot__c=1)`

A *SQL Predicate Filter Rul*e also includes a rule for [which tables to include in the snapshot](/reference/archive-tab/archive-policy-editor/policy-filter-rules.md#white-and-black-lists).

![](https://4057376488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsbSqfKw3vSfr8qwXao4j%2Fuploads%2Fgit-blob-8037ed0250d93cee92d6d632a19e9ac04fdff278%2F598d739b-SQL-Predicate.png?alt=media)
