2 ×

Rule-based Row Filter

StreamableKNIME Java Snippet Nodes version 4.4.0.v202106241003 by KNIME AG, Zurich, Switzerland

This node takes a list of user-defined rules and tries to match them to each row in the input table. If the first matching rule has a TRUE outcome, the row will be selected for inclusion. Otherwise (i.e. if the first matching rule yields FALSE) it will be excluded. If no rule matches the row will be excluded. Inclusion and exclusion may be inverted, see the options below.

Each rule is represented by a line. To add comments, start a line with // (comments can not be placed in the same line as a rule). Anything after // will not be interpreted as a rule. Rules consist of a condition part (antecedent), which must evaluate to true or false , and an outcome (consequent, after the => symbol) which is either TRUE or FALSE .

If no rule matches, the outcome is treated as if it were FALSE .

Columns are given by their name surrounded by $, numbers are given in the usual decimal representation. Note that strings must not contain (double-)quotes (for those cases use the following syntax: /Oscar Wilde's wisdom: "Experience is simply the name we give our mistakes."/). The flow variables are represented by $${ TypeCharacterAndFlowVarName }$$ . The TypeCharacter should be 'D' for double (real) values, 'I' for integer values and 'S' for strings.

The logical expressions can be grouped with parentheses. The precedence rules for them are the following: NOT binds most, AND, XOR and finally OR the least. Comparison operators always take precedence over logical connectives. All operators (and their names) are case-sensitive.

The ROWID represents the row key string, the ROWINDEX is a the index of the row (first row has 0 value), while ROWCOUNT stands for the number of rows in the table.

Some example rules (each should be in one line):

// This is a comment
$Col0$ > 0 => TRUE
When the values in Col0 are greater than 0, we select the row (if no previous rule matched with FALSE outcome).
$Col0$ = "Active" AND $Col1$ <= 5 => TRUE
You can combine conditions.
$Col0$ LIKE "Market Street*" AND 
    ($Col1$ IN ("married", "divorced") 
        OR $Col2$ > 40) => FALSE
With parentheses you can combine multiple conditions.
$Col0$ MATCHES $${SFlowVar0}$$ OR $$ROWINDEX$$ < $${IFlowVar1}$$ =>
The flow variables, table constants can also appear in conditions.

You can use either Ctrl+Space to insert predefined parts, or select them from the upper controls.

The following comparisons result true (other values are neither less, nor greater or equal to missing and NaN values):

  • ? =,<=,>= ?
  • NaN =,<=,>= NaN


Column List
Available columns, which can be used as variables in a rule.
Flow Variable List
Available flow variables, which can be used as variables in a rule.
The operator categories.
A list of valid operators in the selected category.
Short help about the operator.
The rule editor. You can complete the expressions with Ctrl+Space. Each row represents a rule. A red background of the line signals an error and the left side of the editor then shows an error icon.
Include TRUE matches
A row will be included in the output if the first rule that matches has TRUE outcome. If the first matching rule has a FALSE outcome or no rule matches the row will be excluded.
Exclude TRUE matches
A row will be excluded in the output if the first rule that matches has TRUE outcome. If the first matching rule has a FALSE outcome or no rule matches the row will be included.

Input Ports

Any data table from which to filter rows

Output Ports

Data table with the included rows

Best Friends (Incoming)

Best Friends (Outgoing)



To use this node in KNIME, install KNIME Javasnippet from the following update site:


A zipped version of the software site can be downloaded here.

You don't know what to do with this link? Read our NodePit Product and Node Installation Guide that explains you in detail how to install nodes to your KNIME Analytics Platform.

Wait a sec! You want to explore and install nodes even faster? We highly recommend our NodePit for KNIME extension for your KNIME Analytics Platform. Browse NodePit from within KNIME, install nodes with just one click and share your workflows with NodePit Space.


You want to see the source code for this node? Click the following button and we’ll use our super-powers to find it for you.