sqlserver简单查询示例摘要

前言

在本节中,我们将讨论简单的查询语句和需要注意的地方,简短的内容和深刻的理解。

eomonth

在SQL Server 2012教程示例中,对于销售订单表的查询需要返回月最后一天的顺序。


使用tsql2012

选择订单号,订单,custId,工号
从销售订单
在OrderDate = DateAdd(月、DateDiff(月、'19991231,订单),'19991231)



但在SQL Server 2012中,一个新的功能有一个新功能,直接返回到该月的最后一天,通过eomonth功能。

在OrderDate = DateAdd(月、DateDiff(月、'19991231,订单),'19991231)

更换


选择订单号,订单,custId,工号
从销售订单
在eomonth OrderDate =(订单)


简单而粗糙,如上所述。

有何

我们用sales.orderdetails表查询的总价格为(数量*单价)大于10000,并责令其按照总价格。


使用tsql2012

选择订单号,金额(单价*数量)为总
从sales.orderdetails
组行
有金额(单价*数量)> 10000
总的倒序



告诉我们在哪里和通过这个案例对我们有什么区别,下面的例子是一样的


选择行
从sales.orderdetails
在10357行>
组行
选择行
从sales.orderdetails
组行
有10357行>


但是它是否等同于聚合作用呢


选择行
从sales.orderdetails
在计数(数量*单价)> 10000
组行
选择行
从sales.orderdetails
组行
具有计数(数量*单价)> 10000



我们总结了两者之间的区别。

(1)可以在更新、删除和SELECT语句中使用,并且只能在SELECT语句中使用。

(2)组之前的过滤器在哪里,并且已过滤的行经过分组。

(3)在不能使用聚合函数除非聚集功能位于子查询包含在HAVING子句或选择列表。

这么多关于哪里和哪里的区别,事实上,在哪里的应用场景更多,我们将总结一词的用法。

在SELECT语句中只对组(组)或聚合函数(聚合)进行筛选器

插入前分析

当您将查询中的数据插入到表中时,我们实际上有两个解决方案。

方案I


nsert为表…
选择顶部(n)列…
从表


方案二


将顶部(n)插入表中…
选择列…
从表


首先,我们需要查询几个插入,而两个是查询所有。我们需要插入几个数据。接下来,让我们看看两个和两个性能问题之间的区别,创建查询表并插入数据。


创建表的测试值(ID int)
插入测试值(ID)
选择1
联盟的所有
选择2
联盟的所有
选择3
联盟的所有
选择4
联盟的所有
选择5


需要插入的两个表


使用tsql2012

创建表inserttestvalue(ID int)
创建表inserttestvalue1(ID int)


方案一插入


插入inserttestvalue(ID)
选择top(2)id
从测试值
通过id倒序



方案二插入


插入顶部(2)为inserttestvalue1(ID)
选择ID
从测试值
通过id倒序



接下来,查询第一个和两个数据


*选择
来自InsertTestValue

*选择
从inserttestvalue1




我们计划和计划两个插入数据到查询数据之前,我们正在下降,在这个时候,我们可以清楚地看到在一个真正的项目的查询数据下降,而方案二被忽略降序,这是一个非常有趣的地方,到目前为止,我看到两个不同的地方。

两种性能的比较

我们分析插入数据的成本如下:


这里我们知道,使用插入顶(n)比插入更多…选择顶部(n)的性能更好,而选择top(n)将忽略查询的数据排序。

结论:插入顶部(n)大于插入…选择顶部(n)插入数据更好。

计数(不同)和计数(全部)

没有必要再多说清楚了。重复所有列的关键字过滤来过滤数据,而不是单列数据一致性。然后让我们看看计数(不同)和计数(所有)查询数据是否一致或不一致。


创建表的数据

id不是空标识主键,
名称varchar(max)空
);


插入以下测试数据


接下来我们做以下操作


使用tsql2012

select count(名称)为count_name
从dbo.testdata
select count(姓名)为count_allname
从dbo.testdata
select count(不同的名字)作为count_distinctname
从dbo.testdata



在这一点上,我们可以清晰地看到,计数结果(ColName)和计数(所有ColName)是相同的。其实数(所有ColName)是默认选项,包括所有非空值。换句话说,所有的一切都不需要我们指定。

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有疑问,你可以留言交流,希望你能得到更多的支持。