Snowpark Migration Accelerator: Where

설명

지정된 조건에 따라 쿼리 또는 하위 쿼리에서 반환된 데이터를 필터링합니다. (Databricks SQL Language Reference WHERE)

WHERE 절은 충족해야 하는 특정 조건을 정의하여 데이터를 필터링합니다. (Snowflake SQL Language Reference 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 절 내에서 스칼라 하위 쿼리 사용.

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. 비교 연산자(=, <, >, <=, >= 등)와 논리 연산자(AND, OR, NOT 등)를 WHERE 절에 사용하여 데이터를 필터링합니다.

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 절 내에서 스칼라 하위 쿼리 사용.

ID

NAME

AGE

300

Mike

80


  1. WHERE 절의 상관 하위 쿼리.

ID

NAME

AGE

200

Mary

Null

Known Issues

발견된 문제 없음