org.springframework.data.relational.core.sql

## Interface SelectBuilder

    public interface SelectBuilder

Entry point to construct a `Select` statement.

Since:
  1.1
Author:
  Mark Paluch, Jens Schauder, Myeonghyeon Lee
See Also:
  `StatementBuilder`

### Nested Class Summary

Nested Classes
`static interface` `SelectBuilder.BuildSelect` Interface exposing the `Select` build method.
`static interface` `SelectBuilder.SelectAndFrom` Builder exposing `SELECT` and `FROM` methods.
`static interface` `SelectBuilder.SelectFrom` Builder exposing `FROM` methods.
`static interface` `SelectBuilder.SelectFromAndJoin` Builder exposing `FROM`, `JOIN`, `WHERE`, `LIMIT/OFFSET` and `LOCK` methods.
`static interface` `SelectBuilder.SelectFromAndJoinCondition` Builder exposing `FROM`, `WHERE`, `LIMIT/OFFSET`, JOIN `AND` and `LOCK` continuation methods.
`static interface` `SelectBuilder.SelectFromAndOrderBy` Builder exposing `FROM`, `JOIN`, `WHERE`, `LIMIT/OFFSET` and `LOCK` methods.
`static interface` `SelectBuilder.SelectJoin` Interface exposing `JOIN` methods.
`static interface` `SelectBuilder.SelectLimitOffset` Limit/offset methods.
`static interface` `SelectBuilder.SelectLock` Lock methods.
`static interface` `SelectBuilder.SelectOn` Interface exposing `ON` methods to declare `JOIN` relationships.
`static interface` `SelectBuilder.SelectOnCondition` Builder exposing JOIN and `JOIN … ON` continuation methods.
`static interface` `SelectBuilder.SelectOnConditionComparison` Interface declaring the target column comparison relationship.
`static interface` `SelectBuilder.SelectOrdered` Builder exposing `ORDER BY` and `LOCK` methods.
`static interface` `SelectBuilder.SelectWhere` Interface exposing `WHERE`, `LOCK` methods.
`static interface` `SelectBuilder.SelectWhereAndOr` Interface exposing `AND`/`OR` combinator methods for `WHERE` `Condition`s.

### Method Summary

All Methods Instance Methods Abstract Methods
`SelectBuilder.SelectAndFrom` `distinct()` Makes the select statement distinct
`SelectBuilder.SelectAndFrom` `select(Collection<? extends Expression> expressions)` Include one or more `Expression`s in the select list.
`SelectBuilder.SelectAndFrom` `select(Expression... expressions)` Include one or more `Expression`s in the select list.
`SelectBuilder.SelectAndFrom` `select(Expression expression)` Include a `Expression` in the select list.
`SelectBuilder` `top(int count)` Apply a `TOP` clause given `count`.

### Method Detail

#### top

    SelectBuilder top(int count)

Apply a `TOP` clause given `count`.

Parameters:
  `count` - the top count.
Returns:
  `this` `SelectBuilder`.

#### select

    SelectBuilder.SelectAndFrom select(Expression expression)

Include a `Expression` in the select list.

Parameters:
  `expression` - the expression to include.
Returns:
  `this` builder.
See Also:
  `Table.column(String)`

#### select

    SelectBuilder.SelectAndFrom select(Expression... expressions)

Include one or more `Expression`s in the select list.

Parameters:
  `expressions` - the expressions to include.
Returns:
  `this` builder.
See Also:
  `Table.columns(String...)`

#### select

    SelectBuilder.SelectAndFrom select(Collection<? extends Expression> expressions)

Include one or more `Expression`s in the select list.

Parameters:
  `expressions` - the expressions to include.
Returns:
  `this` builder.
See Also:
  `Table.columns(String...)`

#### distinct

    SelectBuilder.SelectAndFrom distinct()

Makes the select statement distinct

Returns:
  `this` builder.