SQL Server 基本语法: http://www.w3school.com.cn/sql/sql_intro.asp

练习1:

运行语句:

USE [Test1]
select
FNumber,
(case
when FAmount>0 then FAmount
else 0
end
) as 收入,
(
case
when FAmount<0 then ABS(FAmount)
else 0
end
) as 支出
from Table_1

效果:

练习2:

运行语句:

USE [Test]
select
Name,
(
case Score
when N'胜' then 1
else 0
end
) as 胜,
(
case Score
when N'负' then 1
else 0
end
)as 负
from Table_1

效果:

执行语句:

USE [Test]
select
Name,
Sum(
case Score
when N'胜' then 1
else 0
end
) as 胜,
Sum(
case Score
when N'负' then 1
else 0
end
)as 负
from Table_1
group by Name

效果图:

练习3:

取出通话时间最长的前5个 执行语句:

USE [Test1]
select top 5 * from Table_2
order by DATEDIFF(SECOND,StartDateTime,EndDateTime) Desc

执行结果:

输出所有数据中拨打长途号码(以0开头)的总时长 执行语句:

USE [Test1]
select Sum(DATEDIFF(SECOND,StartDateTime,EndDateTime)) from Table_2
where TelNum like '0%'

执行结果:

输出本月通话总时长最多的前三个呼叫员的编号:执行语句:

USE [Test1]
--select DATEDIFF(Month,convert(datetime,'2015-1-1'),convert(datetime,'2015-2-2')) from Table_2 --select CallerNumber,telNum, DATEDIFF(Month,startDateTime,convert(datetime,'2015-1-2')) from Table_2 --select CallerNumber,telNum, DATEDIFF(Month,startDateTime,GETDATE()) from Table_2 --select * from Table_2
--where DATEDIFF(Month,startDateTime,convert(datetime,'2015-1-15'))=0 select top 3 CallerNumber from Table_2
where DATEDIFF(Month,startDateTime,convert(datetime,'2015-1-15'))=0
group by CallerNumber
order by Sum(DATEDIFF(Month,startDateTime,EndDateTime)) Desc

效果图:

输出一月份拨打次数最多的前三个呼叫员的编号,运行代码:

USE [Test1]
select top 3 CallerNumber,count(*) from Table_2
where DATEDIFF(Month,startDateTime,convert(datetime,'2015-1-15'))=0
group by CallerNumber
order by count(*) Desc

效果图:

输出所有数据的拨号流水,并且在最后一行添加总呼叫时长:

USE [Test1]

select  CallerNumber,TelNum,DATEDIFF(SECOND,startDateTime,EndDatetime) from Table_2

union all

select '汇总',
convert(nchar(20),
SUM(
case when TelNum not like '0%' then DATEDIFF(SECOND,startDateTime,EndDatetime)
else 0
end
)) as 市内通话,
SUM(
case when TelNum like '0%' then DATEDIFF(SECOND,startDateTime,EndDatetime)
else 0
end
) as 长途电话通话
from Table_2

效果图:

SQL Server练习的更多相关文章

  1. 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目

    最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...

  2. SQL Server 大数据搬迁之文件组备份还原实战

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...

  3. Sql Server系列:分区表操作

    1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...

  4. SQL Server中的高可用性(2)----文件与文件组

        在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...

  5. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  6. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  7. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  8. 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)

    从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  9. SQL Server on Linux 理由浅析

    SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...

  10. SQL Server相关书籍

    SQL Server相关书籍 (排名不分先后) Microsoft SQL Server 企业级平台管理实践 SQL Server 2008数据库技术内幕 SQL Server性能调优实战 SQL S ...

随机推荐

  1. qt如何实现一个渐隐窗口呢(开启的时候他是从上往下渐渐显示)

    qt如何实现一个渐隐窗口呢?就是比如说开启的时候他是从上往下渐渐显示的,关闭的时候从下往上渐渐小时的http://stackoverflow.com/questions/19087822/how-to ...

  2. DOCTYPE、指定语言、字符集

    <!DOCTYPE html> 在HTML的最开始部分声明DOCTYPE文档类型,可以让浏览器或其他用户代理知道你要使用的Html语言类型:无论你打算使用何种类型的HTML语言,DOCTY ...

  3. 消息队列系列(一):.Net平台下的消息队列介绍

    本系列主要记录最近学习消息队列的一些心得体会,打算形成一个系列文档.开篇主要介绍一下.Net平台下一些主流的消息队列框架.       RabbitMQ:http://www.rabbitmq.com ...

  4. LoadingView 自定义加载图片

    #import <UIKit/UIKit.h> @interface LoadingView : UIView @property (nonatomic,strong) NSMutable ...

  5. Ext.widget()作用是使用别名创建对象。

    Ext.widget()作用是使用别名创建对象.使用已经的定义的组件的别名创建这个对象

  6. thinkphp 模板调用数据

    我自己写了个简单的模板是这样的 <!DOCTYPE html> <html> <head> <style> div { width:230px; hei ...

  7. Formatting Domain Names--域名可以由哪些字符串组成

    the domain name can include any of the following printable ASCII characters (excluding spaces): a-z ...

  8. startssl 申请证书,并在Nginx, apache, Tomcat上使用

    tomcat: http://blog.csdn.net/buyaore_wo/article/details/5771470 apache: http://blog.mowd.tw/index.ph ...

  9. 第8章 委托、Lamdba表达式和事件

    本章内容: 委托    Lambda表达式 事件 8.1.3   简单的委托示例 首先定义一个类MathOperations,它有两个静态方法,对double类型的值执行两个操作. public cl ...

  10. css 正方体

    <!DOCTYPE html><html lang="zh-cmn-Hans"><head><meta charset="utf ...