Snowpark Migration Accelerator: Where

説明

クエリまたはサブクエリが返すデータを、指定した条件に基づいてフィルターします。(Databricks SQL 言語参照 WHERE)

WHERE 句は、満たすべき特定の条件を定義することで、データをフィルターします。(Snowflake SQL 言語参照 WHERE)

構文

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

サンプルソースパターン

セットアップデータ

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

パターンコード

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. データをフィルターするには、 WHERE 句で比較演算子(=、>、<、>=、<=など)を使用します。

ID

NAME

AGE

300

Mike

80

400

Dan

50


  1. データをフィルターするには、 WHERE 句で比較演算子(=、<、>、<=、>=、!=)と論理演算子(AND、 OR、 NOT)を使用します。

ID

NAME

AGE

200

Mary

null

300

Mike

80


  1. WHERE 句で IS NULL を使用してnull値をチェックします。

ID

NAME

AGE

200

Mary

null

400

Dan

50


  1. WHERE 句で関数式を使用します。

ID

NAME

AGE

100

John

30

200

Mary

null

300

Mike

80


  1. 値の範囲に基づいてデータをフィルターするための WHERE 句における BETWEEN 演算子の使用。

ID

NAME

AGE

200

Mary

null

300

Mike

80


  1. WHERE 句内でのScalarサブクエリの使用。

ID

NAME

AGE

300

Mike

80


  1. 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);
Copy
  1. データをフィルターするには、 WHERE 句で比較演算子(=、>、<、>=、<=など)を使用します。

ID

NAME

AGE

300

Mike

80

400

Dan

50


  1. データをフィルターするための WHERE 句における比較演算子(=、<、>、<=、>=など)や論理演算子(AND、 OR、 NOT)の使用。

ID

NAME

AGE

200

Mary

null

300

Mike

80


  1. WHERE 句で IS NULL を使用してnull値をチェックします。

ID

NAME

AGE

200

Mary

null

400

Dan

50


  1. WHERE 句で関数式を使用します。

ID

NAME

AGE

100

John

30

200

Mary

null

300

Mike

80


  1. 値の範囲に基づいてデータをフィルターするための WHERE 句における BETWEEN 演算子の使用。

ID

NAME

AGE

200

Mary

null

300

Mike

80


  1. WHERE 句内でのScalarサブクエリの使用。

ID

NAME

AGE

300

Mike

80


  1. WHERE 句の相関サブクエリ。

ID

NAME

AGE

200

Mary

null

既知の問題

問題は見つかりませんでした