pub struct SelectStatement {Show 16 fields
pub comments: Vec<String>,
pub ctes: Vec<Cte>,
pub distinct: bool,
pub top: Option<Box<Expr>>,
pub columns: Vec<SelectItem>,
pub from: Option<FromClause>,
pub joins: Vec<JoinClause>,
pub where_clause: Option<Expr>,
pub group_by: Vec<Expr>,
pub having: Option<Expr>,
pub order_by: Vec<OrderByItem>,
pub limit: Option<Expr>,
pub offset: Option<Expr>,
pub fetch_first: Option<Expr>,
pub qualify: Option<Expr>,
pub window_definitions: Vec<WindowDefinition>,
}Expand description
A SELECT statement, including CTEs.
Aligned with sqlglot’s Select expression which wraps With, From,
Where, Group, Having, Order, Limit, Offset, Window.
Fields§
§comments: Vec<String>Comments attached to this statement.
ctes: Vec<Cte>Common Table Expressions (WITH clause)
distinct: bool§top: Option<Box<Expr>>TOP N (TSQL-style)
columns: Vec<SelectItem>§from: Option<FromClause>§joins: Vec<JoinClause>§where_clause: Option<Expr>§group_by: Vec<Expr>§having: Option<Expr>§order_by: Vec<OrderByItem>§limit: Option<Expr>§offset: Option<Expr>§fetch_first: Option<Expr>Oracle-style FETCH FIRST n ROWS ONLY
qualify: Option<Expr>QUALIFY clause (BigQuery, Snowflake)
window_definitions: Vec<WindowDefinition>Named WINDOW definitions
Implementations§
Source§impl SelectStatement
impl SelectStatement
Sourcepub fn add_select(&mut self, expr_str: &str)
pub fn add_select(&mut self, expr_str: &str)
Add a column to the SELECT list.
§Examples
use sqlglot_rust::builder::select;
let mut stmt = select(&["a"]).from("t").build_select();
stmt.add_select("b");Sourcepub fn add_select_dialect(&mut self, expr_str: &str, dialect: Dialect)
pub fn add_select_dialect(&mut self, expr_str: &str, dialect: Dialect)
Add a column with dialect-specific parsing.
Sourcepub fn add_select_expr(&mut self, expr: Expr, alias: Option<&str>)
pub fn add_select_expr(&mut self, expr: Expr, alias: Option<&str>)
Add an expression to the SELECT list.
Sourcepub fn add_where(&mut self, condition: &str)
pub fn add_where(&mut self, condition: &str)
Add a condition to the WHERE clause (AND).
§Examples
use sqlglot_rust::builder::select;
let mut stmt = select(&["a"]).from("t").build_select();
stmt.add_where("x > 1");
stmt.add_where("y < 10");Sourcepub fn add_where_dialect(&mut self, condition: &str, dialect: Dialect)
pub fn add_where_dialect(&mut self, condition: &str, dialect: Dialect)
Add a WHERE condition with dialect-specific parsing.
Sourcepub fn add_where_expr(&mut self, expr: Expr)
pub fn add_where_expr(&mut self, expr: Expr)
Add an expression to the WHERE clause (AND).
Sourcepub fn add_join(&mut self, table_name: &str, on: &str, join_type: JoinType)
pub fn add_join(&mut self, table_name: &str, on: &str, join_type: JoinType)
Add a JOIN clause.
§Examples
use sqlglot_rust::builder::select;
use sqlglot_rust::ast::JoinType;
let mut stmt = select(&["*"]).from("users").build_select();
stmt.add_join("orders", "users.id = orders.user_id", JoinType::Left);Sourcepub fn add_join_dialect(
&mut self,
table_name: &str,
on: &str,
join_type: JoinType,
dialect: Dialect,
)
pub fn add_join_dialect( &mut self, table_name: &str, on: &str, join_type: JoinType, dialect: Dialect, )
Add a JOIN with dialect-specific parsing.
Sourcepub fn add_join_subquery(
&mut self,
query: Statement,
alias: &str,
on: &str,
join_type: JoinType,
)
pub fn add_join_subquery( &mut self, query: Statement, alias: &str, on: &str, join_type: JoinType, )
Add a JOIN with a subquery.
Sourcepub fn add_join_subquery_dialect(
&mut self,
query: Statement,
alias: &str,
on: &str,
join_type: JoinType,
dialect: Dialect,
)
pub fn add_join_subquery_dialect( &mut self, query: Statement, alias: &str, on: &str, join_type: JoinType, dialect: Dialect, )
Add a JOIN with a subquery and dialect-specific parsing.
Sourcepub fn as_subquery(self, alias: &str) -> TableSource
pub fn as_subquery(self, alias: &str) -> TableSource
Wrap this SELECT as a subquery with an alias.
§Examples
use sqlglot_rust::builder::select;
let inner = select(&["id", "name"]).from("users").build_select();
let subq = inner.as_subquery("u");Trait Implementations§
Source§impl Clone for SelectStatement
impl Clone for SelectStatement
Source§fn clone(&self) -> SelectStatement
fn clone(&self) -> SelectStatement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more