LINQ系列:LINQ to SQL Transact-SQL函数
1. CASE WHEN ... THEN ...
var expr = from p in context.Products
select new
{
商品ID = p.ProductID,
商品名称 = p.ProductName,
是否库存 = p.UnitsInStock > ? "是" : "否"
};
SELECT
[Extent1].[ProductID] AS [ProductID],
[Extent1].[ProductName] AS [ProductName],
CASE WHEN ([Extent1].[UnitsInStock] > 0) THEN N'是' ELSE N'否' END AS [C1]
FROM [dbo].[Product] AS [Extent1]
2. Distinct
var expr = context.Products
.Select(p => p.CategoryID)
.Distinct();
SELECT
[Distinct1].[CategoryID] AS [CategoryID]
FROM ( SELECT DISTINCT
[Extent1].[CategoryID] AS [CategoryID]
FROM [dbo].[Product] AS [Extent1]
) AS [Distinct1]
3. Count
var expr = context.Products.Count();
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].[Product] AS [Extent1]
) AS [GroupBy1]
var expr = context.Products
.Count(p => p.UnitPrice > 10m);
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].[Product] AS [Extent1]
WHERE [Extent1].[UnitPrice] > cast(10 as decimal(18))
) AS [GroupBy1]
4. LongCount
var expr = context.Products.LongCount();
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT_BIG(1) AS [A1]
FROM [dbo].[Product] AS [Extent1]
) AS [GroupBy1]
var expr = context.Products
.LongCount(p => p.UnitPrice > 10m);
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT_BIG(1) AS [A1]
FROM [dbo].[Product] AS [Extent1]
WHERE [Extent1].[UnitPrice] > cast(10 as decimal(18))
) AS [GroupBy1]
5. Sum
var expr = context.Products
.Select(p=>p.UnitsInStock)
.Sum();
var expr = context.Products
.Sum(p => p.UnitsInStock);
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
SUM([Extent1].[UnitsInStock]) AS [A1]
FROM [dbo].[Product] AS [Extent1]
) AS [GroupBy1]
6. Min
var expr = context.Products
.Min(p => p.UnitPrice);
var expr = context.Products
.Select(p => p.UnitPrice)
.Min();
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
MIN([Extent1].[UnitPrice]) AS [A1]
FROM [dbo].[Product] AS [Extent1]
) AS [GroupBy1]
查找每个类别中单价最低的商品:
var expr = from p in context.Products
group p by p.CategoryID into g
select new
{
CategoryID = g.Key,
CheapestProducts = from p2 in g
where p2.UnitPrice == g.Min(p3 => p3.UnitPrice)
select p2
};
SELECT
[Project1].[CategoryID] AS [CategoryID],
[Project1].[C1] AS [C1],
[Project1].[ProductID] AS [ProductID],
[Project1].[CategoryID1] AS [CategoryID1],
[Project1].[ProductName] AS [ProductName],
[Project1].[UnitPrice] AS [UnitPrice],
[Project1].[UnitsInStock] AS [UnitsInStock],
[Project1].[Discontinued] AS [Discontinued]
FROM ( SELECT
[GroupBy1].[K1] AS [CategoryID],
[Extent2].[ProductID] AS [ProductID],
[Extent2].[CategoryID] AS [CategoryID1],
[Extent2].[ProductName] AS [ProductName],
[Extent2].[UnitPrice] AS [UnitPrice],
[Extent2].[UnitsInStock] AS [UnitsInStock],
[Extent2].[Discontinued] AS [Discontinued],
CASE WHEN ([Extent2].[ProductID] IS NULL) THEN CAST(NULL AS int) ELSE 1 END AS [C1]
FROM (SELECT
[Extent1].[CategoryID] AS [K1],
MIN([Extent1].[UnitPrice]) AS [A1]
FROM [dbo].[Product] AS [Extent1]
GROUP BY [Extent1].[CategoryID] ) AS [GroupBy1]
LEFT OUTER JOIN [dbo].[Product] AS [Extent2] ON ([GroupBy1].[K1] = [Extent2].[CategoryID]) AND ([Extent2].[UnitPrice] = [GroupBy1].[A1])
) AS [Project1]
ORDER BY [Project1].[CategoryID] ASC, [Project1].[C1] ASC
7. Max
var expr = context.Products
.Max(p => p.UnitPrice);
var expr = context.Products
.Select(p => p.UnitPrice)
.Max();
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
MAX([Extent1].[UnitPrice]) AS [A1]
FROM [dbo].[Product] AS [Extent1]
) AS [GroupBy1]
8.Avg
var expr = context.Products
.Select(p => p.UnitPrice)
.Average();
var expr = context.Products
.Average(p => p.UnitPrice);
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
AVG([Extent1].[UnitPrice]) AS [A1]
FROM [dbo].[Product] AS [Extent1]
) AS [GroupBy1]
查找单个类别中单价高于平均价的产品:
var expr = from p in context.Products
group p by p.CategoryID into g
select new
{
CategoryID = g.Key,
ExpensiveProducts = from p2 in g
where p2.UnitPrice > g.Average(p3 => p3.UnitPrice)
select p2
};
SELECT
[Project1].[CategoryID] AS [CategoryID],
[Project1].[C1] AS [C1],
[Project1].[ProductID] AS [ProductID],
[Project1].[CategoryID1] AS [CategoryID1],
[Project1].[ProductName] AS [ProductName],
[Project1].[UnitPrice] AS [UnitPrice],
[Project1].[UnitsInStock] AS [UnitsInStock],
[Project1].[Discontinued] AS [Discontinued]
FROM ( SELECT
[GroupBy1].[K1] AS [CategoryID],
[Extent2].[ProductID] AS [ProductID],
[Extent2].[CategoryID] AS [CategoryID1],
[Extent2].[ProductName] AS [ProductName],
[Extent2].[UnitPrice] AS [UnitPrice],
[Extent2].[UnitsInStock] AS [UnitsInStock],
[Extent2].[Discontinued] AS [Discontinued],
CASE WHEN ([Extent2].[ProductID] IS NULL) THEN CAST(NULL AS int) ELSE 1 END AS [C1]
FROM (SELECT
[Extent1].[CategoryID] AS [K1],
AVG([Extent1].[UnitPrice]) AS [A1]
FROM [dbo].[Product] AS [Extent1]
GROUP BY [Extent1].[CategoryID] ) AS [GroupBy1]
LEFT OUTER JOIN [dbo].[Product] AS [Extent2] ON ([GroupBy1].[K1] = [Extent2].[CategoryID]) AND ([Extent2].[UnitPrice] > [GroupBy1].[A1])
) AS [Project1]
ORDER BY [Project1].[CategoryID] ASC, [Project1].[C1] ASC
LINQ系列:LINQ to SQL Transact-SQL函数的更多相关文章
- C# ~ 从 XML 到 Linq 到 Linq to XML
.XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...
- LINQ to SQL 调用 SQL Server 的系统函数
Ø 简介 在 C# 中比较常用的 ORM(Object Relational Mapping)框架就是 EF 了,EF 经常结合 LINQ to SQL 来操作数据库.本文主要讨论如何在 LINQ ...
- Linq之Linq to Sql
目录 写在前面 系列文章 Linq to sql 总结 写在前面 上篇文章介绍了linq to xml的相关内容,linq to xml提供一种更便捷的创建xml树,及查询的途径.这篇文章将继续介绍l ...
- SQL Server游标 C# DataTable.Select() 筛选数据 什么是SQL游标? SQL Server数据类型转换方法 LinQ是什么? SQL Server 分页方法汇总
SQL Server游标 转载自:http://www.cnblogs.com/knowledgesea/p/3699851.html. 什么是游标 结果集,结果集就是select查询之后返回的所 ...
- Spark 系列(十一)—— Spark SQL 聚合函数 Aggregations
一.简单聚合 1.1 数据准备 // 需要导入 spark sql 内置的函数包 import org.apache.spark.sql.functions._ val spark = SparkSe ...
- LinQ系列文章
温故而知新,想着系统再学习一次LinQ知识点,发现园子里有个非常棒的系列文章,所以Mark下来,方便以后查阅! 系列博客导航: LINQ之路系列博客导航 LINQ之路 1:LINQ介绍 LINQ之路 ...
- LINQ 系列
C#图解教程 第十九章 LINQ LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...
- SQL Server自定义函数( 转载于51CTO )
用户自定义函数自定义函数不能执行一系列改变数据库状态的操作,可以像系统函数在查询或存储过程等的程序中使用,也可以像相信过程一样能过 execute 命令来执行.自定义函数中存储了一个 Transact ...
- 【翻译】Flink Table Api & SQL — 内置函数
本文翻译自官网:Built-In Functions https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/fu ...
- SQL Server 聚合函数算法优化技巧
Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值 ...
随机推荐
- c++单例模式为什么不在析构函数中释放静态的单例对象(转)
需要清楚一下几点: 1.单例中的 new 的对象需要delete释放. 2.delete释放对象的时候才会调用对象的析构函数. 3.如果在析构函数里调用delete,那么程序结束时,根本进 ...
- 创建WP8试用应用
参考资料: 创建 Windows Phone 的试用应用 如何在 Windows Phone 应用中实现试用体验 Windows Phone 7 开发 31 日谈——第23日:提供试用版应用程序 对资 ...
- JavaScript-String基础知识
1.字符串可以0个或多个字符串放在一起: " ' ' ".'""' . "\"\"" 2.写法 ...
- swiper插件 纵向内容超出一屏解决办法
1.css .swiper-slide { overflow: auto; } 2.js var swiper = new Swiper('.swiper-container', { directio ...
- iOS开发查看手机app本地存储的文件
开发过程中,有时会在本地存储一些文件,但是我们不确定有没有存上,可以通过以下方法来查看测试手机上本地存储的文件: 1.选择xcode上面的window下面的Devices 2.先在左边选中你当前的设备 ...
- linux开启FTP以及添加用户配置权限,只允许访问自身目录,不能跳转根目录
1.切换到root用户 2.查看是否安装vsftp,我这个是已经安装的. [root@localhost vsftpd]# rpm -qa |grep vsftpd vsftpd--.el7_2.x8 ...
- Insert or Merge && Insertion or Heap Sort
原题连接:https://pta.patest.cn/pta/test/1342/exam/4/question/27102 题目如下: According to Wikipedia: Inserti ...
- #iOS问题记录#关于NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9801)
响应Apple的号召,将APP里的HTTP请求全部升级为HTTPS,一切配置OK,正常的请求也没问题: 但,当使用SDwebImg缓存图片时,遇到了标题写的问题: 根据资料得: 这个问题的出现是因为i ...
- js中的变量类型
js 中输出定义变量的类型 typeof 变量名. var u: --underfined类型 var s = "你是一个好人": --string类型 var n = ...
- java多态性,父类引用指向子类对象
父类引用指向子类对象指的是: 例如父类Animal,子类Cat,Dog.其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类. Animal animal = new C ...