blowin.SqlQueryBuilder
1.0.0
dotnet add package blowin.SqlQueryBuilder --version 1.0.0
NuGet\Install-Package blowin.SqlQueryBuilder -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="blowin.SqlQueryBuilder" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add blowin.SqlQueryBuilder --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: blowin.SqlQueryBuilder, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install blowin.SqlQueryBuilder as a Cake Addin #addin nuget:?package=blowin.SqlQueryBuilder&version=1.0.0 // Install blowin.SqlQueryBuilder as a Cake Tool #tool nuget:?package=blowin.SqlQueryBuilder&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
SqlQueryBuilder
Simple query
var builder = Query.From("People")
.Column("is_blocked")
.Column("id")
.Column("brief_name")
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[is_blocked]," + Environment.NewLine +
$"{Tab}[id]," + Environment.NewLine +
$"{Tab}[brief_name]" + Environment.NewLine +
"FROM [People]" + Environment.NewLine;
Assert.Equal(res, builder);
Simple query with alias
var fromTable = SqlAliasField.Of("p", "People");
var builder = Query.From(fromTable)
.Column(fromTable.WithData("is_blocked"), "block")
.Column(fromTable.WithData("id"))
.Column(fromTable.WithData("brief_name"))
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[block] = [p].[is_blocked]," + Environment.NewLine +
$"{Tab}[id] = [p].[id]," + Environment.NewLine +
$"{Tab}[brief_name] = [p].[brief_name]" + Environment.NewLine +
"FROM [People] [p]" + Environment.NewLine;
Assert.Equal(res, builder);
Where
var builder = Query.From(SqlAliasField.Of("People"))
.Column("is_blocked", "id", "brief_name")
.Where("city_1", ConditionType.Eq, SqlWherePair.Of(SqlWhereValue.Of("LA", SqlFormatType.String), ConditionJoinerType.And))
.Where("city_2", ConditionType.NotEq, SqlWhereValue.Of("New", SqlFormatType.String))
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[is_blocked]," + Environment.NewLine +
$"{Tab}[id]," + Environment.NewLine +
$"{Tab}[brief_name]" + Environment.NewLine +
"FROM [People]" + Environment.NewLine +
"WHERE [city_1] = 'LA' AND" + Environment.NewLine +
$"{Tab}[city_2] != 'New'" + Environment.NewLine;
Assert.Equal(res, builder);
Inner join
var builder = Query.From(SqlAliasField.Of("People"))
.Column("is_blocked", "id", "brief_name")
.Join("vwa_C_Abstract_Contractor", JoinType.Inner, "id_entity", ConditionType.Eq, "id")
.Join("vw_G_Country", JoinType.Inner, "id_country", ConditionType.Eq, "id_country_cross")
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[is_blocked]," + Environment.NewLine +
$"{Tab}[id]," + Environment.NewLine +
$"{Tab}[brief_name]" + Environment.NewLine +
"FROM [People]" + Environment.NewLine +
$"{Tab}INNER JOIN [vwa_C_Abstract_Contractor] ON [id_entity] = [id]" + Environment.NewLine +
$"{Tab}INNER JOIN [vw_G_Country] ON [id_country] = [id_country_cross]" + Environment.NewLine;
Assert.Equal(res, builder);
Group by
var builder = Query.From(SqlAliasField.Of("People"))
.Column("is_blocked", "id", "brief_name")
.OrderBy("brief_name", "full_name")
.OrderBy(OrderByDirection.Desc)
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[is_blocked]," + Environment.NewLine +
$"{Tab}[id]," + Environment.NewLine +
$"{Tab}[brief_name]" + Environment.NewLine +
"FROM [People]" + Environment.NewLine +
"ORDER BY" + Environment.NewLine +
$"{Tab}[brief_name]," + Environment.NewLine +
$"{Tab}[full_name] DESC" + Environment.NewLine;
Assert.Equal(res, builder);
Order by
var builder = Query.From(SqlAliasField.Of("People"))
.Column("is_blocked", "id", "brief_name")
.Where("is_blocked", ConditionType.Eq, "1")
.GroupBy("my_field_1", "my_field_2")
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[is_blocked]," + Environment.NewLine +
$"{Tab}[id]," + Environment.NewLine +
$"{Tab}[brief_name]" + Environment.NewLine +
"FROM [People]" + Environment.NewLine +
"WHERE [is_blocked] = 1" + Environment.NewLine +
"GROUP BY" + Environment.NewLine +
$"{Tab}[my_field_1]," + Environment.NewLine +
$"{Tab}[my_field_2]" + Environment.NewLine;
Assert.Equal(res, builder.ToString());
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- FlexEnum (>= 1.0.1)
- System.Memory (>= 4.5.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 576 | 6/13/2019 |