Shape · Rows
Filter
Keeps only the rows that meet your conditions, combined with AND or OR. For example, keep orders where the amount is over 100.
Also known as: Where, select records
How it works
Each row of Conditions names a column, an operator and what to compare against. The operators are =, ≠, >, <, ≥, ≤, contains, is null, is not null, is empty, is not empty, is in params and is not in params. The right-hand side can be a Value, another Column, an Expression (raw boolean SQL used as the whole condition, such as amount > target * 1.1) or a Param read from the first row of the table wired to the params handle. The conditions are combined with AND or OR. contains is a substring match; is empty matches NULL or an empty string, so use it for blank checks rather than a blank value, which leaves the condition unset. A half-filled condition stops the node from running, and no conditions at all passes every row.
Inputs and outputs
Inputs
data— Table
Outputs
data— Table
Settings
The Attributes panel of Filter, as in the app: the controls work, but nothing runs — there is no data behind it.
The same settings, as the Assistant writes them
{
conditions: [{ column, operator: "="|"!="|">"|"<"|">="|"<="|"contains"|"is null"|"is not null"|"is empty"|"is not empty"|"in"|"not in", value, rhsKind?: "value"|"column"|"expression"|"param", rhsColumn?, rhsExpression?, rhsParamColumn? }]
combinator: "AND"|"OR"
}"is empty" / "is not empty" test for NULL or the empty string and take no value — use them for a blank check, never value "" (a blank value leaves the condition unset); rhsKind "expression" = rhsExpression is a raw boolean DuckDB SQL fragment used as the whole predicate, e.g. "amount > target * 1.1"; "param" = a column of the table wired into the params port, which appears on the node as soon as a condition uses it (#631/#632)
Example
Keep paid EU orders over 100: status = paid, region = EU, amount > 100, combined with AND.
| status | region | amount | kept |
|---|---|---|---|
| paid | EU | 250 | yes |
| paid | US | 250 | no |
| open | EU | 250 | no |
| paid | EU | 80 | no |