Snowpark Migration Accelerator: Where¶
説明¶
クエリまたはサブクエリが返すデータを、指定した条件に基づいてフィルターします。(Databricks SQL 言語参照 WHERE)
WHERE
句は、満たすべき特定の条件を定義することで、データをフィルターします。(Snowflake SQL 言語参照 WHERE)
構文¶
WHERE <boolean_expression>
...
WHERE <predicate>
[ ... ]
サンプルソースパターン¶
セットアップデータ¶
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);
パターンコード¶
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);
データをフィルターするには、
WHERE
句で比較演算子(=、>、<、>=、<=など)を使用します。
ID |
NAME |
AGE |
---|---|---|
300 |
Mike |
80 |
400 |
Dan |
50 |
データをフィルターするには、
WHERE
句で比較演算子(=、<、>、<=、>=、!=)と論理演算子(AND、 OR、 NOT)を使用します。
ID |
NAME |
AGE |
---|---|---|
200 |
Mary |
null |
300 |
Mike |
80 |
WHERE
句でIS NULL
を使用してnull値をチェックします。
ID |
NAME |
AGE |
---|---|---|
200 |
Mary |
null |
400 |
Dan |
50 |
WHERE
句で関数式を使用します。
ID |
NAME |
AGE |
---|---|---|
100 |
John |
30 |
200 |
Mary |
null |
300 |
Mike |
80 |
値の範囲に基づいてデータをフィルターするための
WHERE
句におけるBETWEEN
演算子の使用。
ID |
NAME |
AGE |
---|---|---|
200 |
Mary |
null |
300 |
Mike |
80 |
WHERE
句内でのScalarサブクエリの使用。
ID |
NAME |
AGE |
---|---|---|
300 |
Mike |
80 |
WHERE
句で、外部クエリの列を参照するサブクエリ。
ID |
NAME |
AGE |
---|---|---|
200 |
Mary |
null |
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);
データをフィルターするには、
WHERE
句で比較演算子(=、>、<、>=、<=など)を使用します。
ID |
NAME |
AGE |
---|---|---|
300 |
Mike |
80 |
400 |
Dan |
50 |
データをフィルターするための
WHERE
句における比較演算子(=、<、>、<=、>=など)や論理演算子(AND、 OR、 NOT)の使用。
ID |
NAME |
AGE |
---|---|---|
200 |
Mary |
null |
300 |
Mike |
80 |
WHERE
句でIS NULL
を使用してnull値をチェックします。
ID |
NAME |
AGE |
---|---|---|
200 |
Mary |
null |
400 |
Dan |
50 |
WHERE
句で関数式を使用します。
ID |
NAME |
AGE |
---|---|---|
100 |
John |
30 |
200 |
Mary |
null |
300 |
Mike |
80 |
値の範囲に基づいてデータをフィルターするための
WHERE
句におけるBETWEEN
演算子の使用。
ID |
NAME |
AGE |
---|---|---|
200 |
Mary |
null |
300 |
Mike |
80 |
WHERE
句内でのScalarサブクエリの使用。
ID |
NAME |
AGE |
---|---|---|
300 |
Mike |
80 |
WHERE
句の相関サブクエリ。
ID |
NAME |
AGE |
---|---|---|
200 |
Mary |
null |
既知の問題¶
問題は見つかりませんでした