ISqlQueryBuilder.Union(ISqlQueryBuilder queryBuilder) Method
.NET Standard 2.x
Uses UNION
to combine the result set of the current SQL SELECT statement with the result set of another SQL SELECT statement generated by the ISqlQueryBuilder
object.
Namespace: SnapObjects.Data
Assembly: SnapObjects.Data.dll
Syntax
ISqlQueryBuilder Union(ISqlQueryBuilder queryBuilder);
Parameters
queryBuilder
SnapObjects.Data.ISqlQueryBuilder
The ISqlQueryBuilder
object which represents a SQL query whose result set is to be combined with the result set of the current SQL query.
Returns
SnapObjects.Data.ISqlQueryBuilder
Returns the current ISqlQueryBuilder
object.
Examples
The following code example demonstrates how to use the Union(ISqlQueryBuilder queryBuilder) method to merge the result sets of two or more SQL SELECT statements; it sorts the records in default order and does not include duplicate rows. These SELECT statements must have the same number of columns of the same data type and in the same selected order.
using SnapObjects.Data;
using System;
namespace Appeon.ApiDoc.ISqlQueryBuilderExamples
{
public class UnionExample
{
private SchoolContext _context;
public UnionExample(SchoolContext dataContext)
{
// Sets Data Context.
_context = dataContext;
}
public void Example1()
{
// Declares SqlQueryBuilder。
var sqlbuilder1 = new SqlQueryBuilder();
var sqlbuilder2 = new SqlQueryBuilder();
sqlbuilder1.Select("courseid", "courseid")
.Select("location", "address")
.From("OnsiteCourse", "onsite");
sqlbuilder2.Select("courseid", "courseid")
.Select("url", "address")
.From("OnlineCourse", "online");
// Merges the sqlbuilder1 statement to sqlbuilder2.
sqlbuilder2.Union(sqlbuilder1);
// Converts to raw SQL for the database corresponding to the data context.
string sql = sqlbuilder2.ToSqlString(_context);
Console.WriteLine(sql);
/*This code produces the following output:
SELECT
[courseid] AS [courseid],
[url] AS [address]
FROM [OnlineCourse] AS [online]
UNION (SELECT
[courseid] AS [courseid],
[location] AS [address]
FROM [OnsiteCourse] AS [onsite])
*/
}
}
}
Applies to
.NET Standard
2.x