SELECT & WHERE 절
SELECT & WHERE 절 (SELECT & WHERE clause)
SELECT 문은 Flink SQL에서 데이터를 조회하는 가장 기본적인 쿼리입니다. 이 문서는 SELECT 문의 일반적인 문법과 select_list, table_expression, WHERE 절, VALUES 절, 스칼라 함수 호출 등을 설명합니다. 배치(Batch)와 스트리밍(Streaming) 모드 모두에서 사용할 수 있습니다.
출처: 문서
본문
SELECT 문의 일반적인 문법은 다음과 같습니다.
SELECT select_list FROM table_expression [ WHERE boolean_expression ]
table_expression은 데이터의 어떤 소스든 가리킬 수 있습니다. 기존 테이블, 뷰, VALUES 또는 VALUE 절, 여러 기존 테이블의 조인 결과, 또는 서브쿼리일 수 있습니다. 테이블이 카탈로그에서 사용 가능하다고 가정할 때, 다음 쿼리는 Orders의 모든 행을 읽습니다.
SELECT * FROM Orders
select_list의 * 지정은 쿼리가 모든 컬럼을 해석한다는 뜻입니다. 하지만 *의 사용은 쿼리를 카탈로그 변경에 덜 견고하게 만들기 때문에 프로덕션에서는 권장되지 않습니다. 대신 select_list는 사용 가능한 컬럼의 부분집합을 지정하거나 해당 컬럼을 사용해 계산을 수행할 수 있습니다. 예를 들어 Orders에 order_id, price, tax라는 컬럼이 있다면 다음 쿼리를 작성할 수 있습니다.
SELECT order_id, price + tax FROM Orders
쿼리는 VALUES 절을 사용해 인라인 데이터에서도 소비할 수 있습니다. 각 튜플은 하나의 행에 해당하며, 각 컬럼에 이름을 부여하기 위해 별칭(alias)을 제공할 수 있습니다.
SELECT order_id, price FROM (VALUES (1, 2.0), (2, 3.1)) AS t (order_id, price)
행은 WHERE 절을 기반으로 필터링할 수 있습니다.
SELECT price + tax FROM Orders WHERE id = 10
또한 단일 행의 컬럼에 내장 함수와 사용자 정의 스칼라 함수를 호출할 수 있습니다. 사용자 정의 함수는 사용 전에 카탈로그에 등록되어 있어야 합니다.
SELECT PRETTY_PRINT(order_id) FROM Orders