Snowpark Migration Accelerator: Where

Descrição

Filtra os dados retornados por uma consulta ou subconsulta com base nas condições especificadas. (Referência da linguagem SQL do Databricks WHERE)

A cláusula WHERE filtra os dados definindo condições específicas que devem ser atendidas. (Referência da linguagem SQL do Snowflake WHERE)

Sintaxe

WHERE <boolean_expression>
Copy
...
WHERE <predicate>
[ ... ]
Copy

Amostra de padrões da origem

Dados de configuração

Databricks

CREATE TABLE person (id INT, name STRING, age INT);
INSERT INTO person VALUES
    (100, 'John',   30),
    (200, 'Mary', NULL),
    (300, 'Mike',   80),
    (400, 'Dan' ,   50);
Copy

Snowflake

 CREATE TABLE person (id INT, name STRING, age INT);
 INSERT INTO person VALUES
    (100, 'John',   30),
    (200, 'Mary', NULL),
    (300, 'Mike',   80),
    (400, 'Dan' ,   50);
Copy

Código do padrão

Databricks

-- 1. Comparison operator in `WHERE` clause.
SELECT * FROM person WHERE id > 200 ORDER BY id;

-- 2. Comparison and logical operators in `WHERE` clause.
SELECT * FROM person WHERE id = 200 OR id = 300 ORDER BY id;

-- 3. IS NULL expression in `WHERE` clause.
SELECT * FROM person WHERE id > 300 OR age IS NULL ORDER BY id;

-- 4. Function expression in `WHERE` clause.
SELECT * FROM person WHERE length(name) > 3 ORDER BY id;

-- 5. `BETWEEN` expression in `WHERE` clause.
SELECT * FROM person WHERE id BETWEEN 200 AND 300 ORDER BY id;

-- 6. Scalar Subquery in `WHERE` clause.
SELECT * FROM person WHERE age > (SELECT avg(age) FROM person);

-- 7. Correlated Subquery in `WHERE` clause.
SELECT * FROM person AS parent
   WHERE EXISTS (SELECT 1 FROM person AS child
                  WHERE parent.id = child.id
                    AND child.age IS NULL);
Copy
  1. Use operadores de comparação (como =, >, <, >=, <=) na cláusula WHERE para filtrar dados.

ID

NAME

AGE

300

Mike

80

400

Dan

50


  1. Use operadores de comparação (=, <, >, <=, >=, !=) e operadores lógicos (AND, OR, NOT) na cláusula WHERE para filtrar dados.

ID

NAME

AGE

200

Mary

nulo

300

Mike

80


  1. Uso de IS NULL na cláusula WHERE para verificar se há valores nulos.

ID

NAME

AGE

200

Mary

nulo

400

Dan

50


  1. Uso de expressões de função em uma cláusula WHERE.

ID

NAME

AGE

100

John

30

200

Mary

nulo

300

Mike

80


  1. Uso do operador BETWEEN em uma cláusula WHERE para filtrar dados com base em um intervalo de valores.

ID

NAME

AGE

200

Mary

nulo

300

Mike

80


  1. Uso de uma subconsulta escalar em uma cláusula WHERE.

ID

NAME

AGE

300

Mike

80


  1. Uma subconsulta na cláusula WHERE que faz referência a colunas da consulta externa.

ID

NAME

AGE

200

Mary

nulo

Snowflake

-- 1. Comparison operator in `WHERE` clause.
SELECT * FROM person WHERE id > 200 ORDER BY id;

-- 2. Comparison and logical operators in `WHERE` clause.
SELECT * FROM person WHERE id = 200 OR id = 300 ORDER BY id;

-- 3. IS NULL expression in `WHERE` clause.
SELECT * FROM person WHERE id > 300 OR age IS NULL ORDER BY id;

-- 4. Function expression in `WHERE` clause.
SELECT * FROM person WHERE length(name) > 3 ORDER BY id;

-- 5. `BETWEEN` expression in `WHERE` clause.
SELECT * FROM person WHERE id BETWEEN 200 AND 300 ORDER BY id;

-- 6. Scalar Subquery in `WHERE` clause.
SELECT * FROM person WHERE age > (SELECT avg(age) FROM person);

-- 7. Correlated Subquery in `WHERE` clause.
SELECT * FROM person AS parent
   WHERE EXISTS (SELECT 1 FROM person AS child
                  WHERE parent.id = child.id
                    AND child.age IS NULL);
Copy
  1. Use operadores de comparação (como =, >, <, >=, <=) na cláusula WHERE para filtrar dados.

ID

NAME

AGE

300

Mike

80

400

Dan

50


  1. Uso de operadores de comparação (como =, <, >, <=, >=) e operadores lógicos (como AND, OR, NOT) na cláusula WHERE para filtrar dados.

ID

NAME

AGE

200

Mary

nulo

300

Mike

80


  1. Uso de IS NULL na cláusula WHERE para verificar se há valores nulos.

ID

NAME

AGE

200

Mary

nulo

400

Dan

50


  1. Uso de expressões de função em uma cláusula WHERE.

ID

NAME

AGE

100

John

30

200

Mary

nulo

300

Mike

80


  1. Uso do operador BETWEEN em uma cláusula WHERE para filtrar dados com base em um intervalo de valores.

ID

NAME

AGE

200

Mary

nulo

300

Mike

80


  1. Uso de uma subconsulta escalar em uma cláusula WHERE.

ID

NAME

AGE

300

Mike

80


  1. Subconsulta correlacionada na cláusula WHERE.

ID

NAME

AGE

200

Mary

nulo

Problemas conhecidos

Não foram encontrados problemas