This documentation is for an out-of-date version of Apache Flink. We recommend you use the latest stable version.
SELECT & WHERE clause #
The general syntax of the
SELECT statement is:
SELECT select_list FROM table_expression [ WHERE boolean_expression ]
table_expression refers to any source of data. It could be an existing table, view, or
VALUES clause, the joined results of multiple existing tables, or a subquery. Assuming that the table is available in the catalog, the following would read all rows from
SELECT * FROM Orders
* means the query will resolve all columns. However, usage of
* is discouraged in production because it makes queries less robust to catalog changes. Instead, a
select_list can specify a subset of available columns or make calculations using said columns. For example, if
Orders has columns named
tax you could write the following query:
SELECT order_id, price + tax FROM Orders
Queries can also consume from inline data using the
VALUES clause. Each tuple corresponds to one row and an alias may be provided to assign names to each column.
SELECT order_id, price FROM (VALUES (1, 2.0), (2, 3.1)) AS t (order_id, price)
Rows can be filtered based on a
SELECT price + tax FROM Orders WHERE id = 10
Additionally, built-in and user-defined scalar functions can be invoked on the columns of a single row. User-defined functions must be registered in a catalog before use.
SELECT PRETTY_PRINT(order_id) FROM Orders