ANY Predicate

Important Notice: Migration of Documentation Website

Please be advised that our documentation website is currently undergoing a migration to a new platform. To ensure you have access to the most up-to-date information, we kindly request that you visit our new documentation website located at:

Official Snowflake Snowconvert Documentation

For any immediate assistance or if you encounter any issues, please contact our support team at [email protected].

Thank you for your understanding.

Description

In Teradata enables quantification in a comparison operation or IN/NOT IN predicate. The comparison of expression and at least one value in the set of values returned by subquery is true. Please review the following Teradata documentation for more information.

Teradata syntax

{ expression quantifier ( literal [ {, | OR} ... ] ) |
  { expression | ( expression [,...] ) } quantifier ( subquery )
}

Where quantifier:

{ comparison_operator [ NOT ] IN } { ALL |ANY | SOME }

Snowflake syntax

To compare individual values:

<value> [ NOT ] IN ( <value_1> [ , <value_2> ...  ] )

To compare row constructors (parenthesized lists of values):

( <value_A> [, <value_B> ... ] ) [ NOT ] IN (  ( <value_1> [ , <value_2> ... ] )  [ , ( <value_3> [ , <value_4> ... ] )  ...  ]  )

To compare a value to the values returned by a subquery:

<value> [ NOT ] IN ( <subquery> )

Sample Source Patterns

Sample data

Teradata

CREATE TABLE Employee (
    EmpNo INT,
    Name VARCHAR(100),
    DeptNo INT
);

INSERT INTO Employee (EmpNo, Name, DeptNo)
VALUES (1, 'Alice', 100);

INSERT INTO Employee (EmpNo, Name, DeptNo)
VALUES (2, 'Bob', 300);

INSERT INTO Employee (EmpNo, Name, DeptNo)
VALUES (3, 'Charlie', 500);

INSERT INTO Employee (EmpNo, Name, DeptNo)
VALUES (4, 'David', 200);

INSERT INTO Employee (EmpNo, Name, DeptNo)
VALUES (5, 'Eve', 100);

Snowflake

CREATE OR REPLACE TABLE Employee (
    EmpNo INT,
    Name VARCHAR(100),
    DeptNo INT
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "teradata",  "convertedOn": "01/14/2025",  "domain": "test" }}'
;

INSERT INTO Employee (EmpNo, Name, DeptNo)
VALUES (1, 'Alice', 100);

INSERT INTO Employee (EmpNo, Name, DeptNo)
VALUES (2, 'Bob', 300);

INSERT INTO Employee (EmpNo, Name, DeptNo)
VALUES (3, 'Charlie', 500);

INSERT INTO Employee (EmpNo, Name, DeptNo)
VALUES (4, 'David', 200);

INSERT INTO Employee (EmpNo, Name, DeptNo)
VALUES (5, 'Eve', 100);

Equal ANY pedicate in WHERE clause

Teradata

SELECT DeptNo
FROM Employee
WHERE DeptNo = ANY(100,300,500) ;

Snowflake

SELECT DeptNo
FROM Employee
WHERE DeptNo IN(100,300,500) ;

Other comparison operators in WHERE clause

When there are other comparison operators, there equivalent translation is to add a subquery with the required logic.

Teradata

SELECT Name, DeptNo
FROM Employee
WHERE DeptNo < ANY(100,300,500) ;

Snowflake

SELECT Name, DeptNo
FROM Employee
WHERE DeptNo < ANY 
(SELECT DeptNo
FROM Employee
WHERE DeptNo > 100
OR DeptNo > 300
OR DeptNo > 500);

IN ANY in WHERE clause

Teradata

SELECT DeptNo
FROM Employee
WHERE DeptNo IN ANY(100,300,500) ;

Snowflake

SELECT DeptNo
FROM Employee
WHERE DeptNo IN(100,300,500) ;

NOT IN ALL in WHERE clause

Teradata

SELECT Name, DeptNo
FROM Employee
WHERE DeptNo NOT IN ALL(100, 200);

Snowflake

SELECT Name, DeptNo
FROM Employee
WHERE DeptNo NOT IN (100, 200);

Known Issues

NOT IN ANY in WHERE clause

Teradata

SELECT Name, DeptNo
FROM Employee
WHERE DeptNo NOT IN ANY(100, 200);

Snowflake

SELECT Name, DeptNo
FROM Employee
WHERE DeptNo IN (100, 200)
   OR DeptNo NOT IN (100, 200);

No related EWIs.

Last updated