Select¶
The select statement support distinct, distinct on and top:
IAlias person = sql.Alias("person");
// Select all
ISelect select1 = sql.Select().Add(person.All);
// Select columns
ISelect select2 = sql.Select().Add(person["Name"], person["SurName"]);
// Add alias
ISelect select3 = sql.Select().Add(person["SurName"]).As("SurName");
// Distinct
ISelect select4 = sql.Select().Distinct().Add(person["Name"]);
// Distinct on
ISelect select5 = sql.Select().DistinctOn(person["Name"]).Add(person.All);
// Top
ISelect select6 = sql.Select().Top(10).Percent().Add(person.All);
// Over
ISelect select7 = sql.Select().Add(SqlFn.Sum(person["Salary"]))
.Over(o => o.PartitionBy(x => x.Add(person["DepartmentId"])));
With lambda expressions:
Person person = null;
// Select all
ISelect select1 = sql.Select().Add(() => person);
// Select columns
ISelect select2 = sql.Select().Add(() => person.Name, () => person.SurName);
// Add alias
ISelect select3 = sql.Select().Add(() => person.SurName).As("SurName");
// Distinct
ISelect select4 = sql.Select().Distinct().Add(() => person.Name);
// Distinct on
ISelect select5 = sql.Select().DistinctOn(() => person.Name).Add(() => person);
// Top
ISelect select6 = sql.Select().Top(10).Percent().Add(() => person);
// Over
ISelect select7 = sql.Select().Add(() => SqlExp.Sum(person.Salary))
.Over(o => o.PartitionBy(x => x.Add(() => person.Department.Id)));
With query object:
IAlias person = sql.Alias("person");
// Add select to the query
ISelect select = sql.Select().Add(person.All);
IQuery query1 = sql.Query.Select(select);
// Create select (columns only)
IQuery query2 = sql.Query
.Select(person["Name"], person["SurName"]);
// Other options
IQuery query3 = sql.Query
.Select(x => x.Distinct().Add(person["Name"]));