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>
...
WHERE <predicate>
[ ... ]
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);
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);
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);
Use operadores de comparação (como =, >, <, >=, <=) na cláusula
WHEREpara filtrar dados.
ID |
NAME |
AGE |
|---|---|---|
300 |
Mike |
80 |
400 |
Dan |
50 |
Use operadores de comparação (=, <, >, <=, >=, !=) e operadores lógicos (AND, OR, NOT) na cláusula
WHEREpara filtrar dados.
ID |
NAME |
AGE |
|---|---|---|
200 |
Mary |
nulo |
300 |
Mike |
80 |
Uso de
IS NULLna cláusulaWHEREpara verificar se há valores nulos.
ID |
NAME |
AGE |
|---|---|---|
200 |
Mary |
nulo |
400 |
Dan |
50 |
Uso de expressões de função em uma cláusula
WHERE.
ID |
NAME |
AGE |
|---|---|---|
100 |
John |
30 |
200 |
Mary |
nulo |
300 |
Mike |
80 |
Uso do operador
BETWEENem uma cláusulaWHEREpara filtrar dados com base em um intervalo de valores.
ID |
NAME |
AGE |
|---|---|---|
200 |
Mary |
nulo |
300 |
Mike |
80 |
Uso de uma subconsulta escalar em uma cláusula
WHERE.
ID |
NAME |
AGE |
|---|---|---|
300 |
Mike |
80 |
Uma subconsulta na cláusula
WHEREque 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);
Use operadores de comparação (como =, >, <, >=, <=) na cláusula
WHEREpara filtrar dados.
ID |
NAME |
AGE |
|---|---|---|
300 |
Mike |
80 |
400 |
Dan |
50 |
Uso de operadores de comparação (como =, <, >, <=, >=) e operadores lógicos (como AND, OR, NOT) na cláusula
WHEREpara filtrar dados.
ID |
NAME |
AGE |
|---|---|---|
200 |
Mary |
nulo |
300 |
Mike |
80 |
Uso de
IS NULLna cláusulaWHEREpara verificar se há valores nulos.
ID |
NAME |
AGE |
|---|---|---|
200 |
Mary |
nulo |
400 |
Dan |
50 |
Uso de expressões de função em uma cláusula
WHERE.
ID |
NAME |
AGE |
|---|---|---|
100 |
John |
30 |
200 |
Mary |
nulo |
300 |
Mike |
80 |
Uso do operador
BETWEENem uma cláusulaWHEREpara filtrar dados com base em um intervalo de valores.
ID |
NAME |
AGE |
|---|---|---|
200 |
Mary |
nulo |
300 |
Mike |
80 |
Uso de uma subconsulta escalar em uma cláusula
WHERE.
ID |
NAME |
AGE |
|---|---|---|
300 |
Mike |
80 |
Subconsulta correlacionada na cláusula
WHERE.
ID |
NAME |
AGE |
|---|---|---|
200 |
Mary |
nulo |
Problemas conhecidos¶
Não foram encontrados problemas