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

练习1:

运行语句:

  1. USE [Test1]
  2. select
  3. FNumber,
  4. (case
  5. when FAmount>0 then FAmount
  6. else 0
  7. end
  8. ) as 收入,
  9. (
  10. case
  11. when FAmount<0 then ABS(FAmount)
  12. else 0
  13. end
  14. ) as 支出
  15. from Table_1

效果:

练习2:

运行语句:

  1. USE [Test]
  2. select
  3. Name,
  4. (
  5. case Score
  6. when N'胜' then 1
  7. else 0
  8. end
  9. ) as 胜,
  10. (
  11. case Score
  12. when N'负' then 1
  13. else 0
  14. end
  15. )as
  16. from Table_1

效果:

执行语句:

  1. USE [Test]
  2. select
  3. Name,
  4. Sum(
  5. case Score
  6. when N'胜' then 1
  7. else 0
  8. end
  9. ) as 胜,
  10. Sum(
  11. case Score
  12. when N'负' then 1
  13. else 0
  14. end
  15. )as
  16. from Table_1
  17. group by Name

效果图:

练习3:

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

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

执行结果:

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

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

执行结果:

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

  1. USE [Test1]
  2. --select DATEDIFF(Month,convert(datetime,'2015-1-1'),convert(datetime,'2015-2-2')) from Table_2
  3.  
  4. --select CallerNumber,telNum, DATEDIFF(Month,startDateTime,convert(datetime,'2015-1-2')) from Table_2
  5.  
  6. --select CallerNumber,telNum, DATEDIFF(Month,startDateTime,GETDATE()) from Table_2
  7.  
  8. --select * from Table_2
  9. --where DATEDIFF(Month,startDateTime,convert(datetime,'2015-1-15'))=0
  10.  
  11. select top 3 CallerNumber from Table_2
  12. where DATEDIFF(Month,startDateTime,convert(datetime,'2015-1-15'))=0
  13. group by CallerNumber
  14. order by Sum(DATEDIFF(Month,startDateTime,EndDateTime)) Desc

效果图:

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

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

效果图:

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

  1. USE [Test1]
  2.  
  3. select CallerNumber,TelNum,DATEDIFF(SECOND,startDateTime,EndDatetime) from Table_2
  4.  
  5. union all
  6.  
  7. select '汇总',
  8. convert(nchar(20),
  9. SUM(
  10. case when TelNum not like '0%' then DATEDIFF(SECOND,startDateTime,EndDatetime)
  11. else 0
  12. end
  13. )) as 市内通话,
  14. SUM(
  15. case when TelNum like '0%' then DATEDIFF(SECOND,startDateTime,EndDatetime)
  16. else 0
  17. end
  18. ) as 长途电话通话
  19. 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. C++字符数字的编码(Encode)与解码(Decode)

    在日常应用中,我们常用结构体或者类来存储一条信息,这种方式很方便,但是不利于数据的传输.例如在网络编程中,我们需要将结构中的数据转化为字节流才能进行传输,我们可以利用memcpy强行将结构化的数据转化 ...

  2. httpclient提交json参数

    private void httpReqUrl(List<HongGuTan> list, String url) throws ClientProtocolException, IOEx ...

  3. C++ Primer Pluse_6_课后题

    #include <iostream> #include <cctype> #include <array> #include <string> #in ...

  4. gridcontrol中使用右健菜单popupMenu1

    private void gridView1_ShowGridMenu(object sender, DevExpress.XtraGrid.Views.Grid.GridMenuEventArgs ...

  5. 算法训练 A+B Problem

     算法训练 A+B Problem   时间限制:1.0s   内存限制:512.0MB      问题描述 输入A,B. 输出A+B. 输入格式 输入包含两个整数A,B,用一个空格分隔. 输出格式 ...

  6. Aptana Studio 3的汉化

    Aptana Studio 3(下面简称Aptana 3)的汉化方法 1.找到这个网站 http://aptana.com/support 2.单击下面的链接 view documentation 在 ...

  7. block 反向传值回调

    /** *  block 反向传值回调 */ //在第二个控制器中 //   (1)声明block,在基类中已写好 //   (2)写好传值方法 //(1) typedef void (^Return ...

  8. PMP--可能会涉及到的计算题

    一.进度管理里的历时三点估算历时的三点估算可能会出现在进度管理的计算题里.以下公式,大家要记住:说一下历时的三点估算中的几个值:1.最有可能的历时估算:Tm2.最乐观的历时估算: To3.最悲观的历时 ...

  9. iOS 证书及配置文件介绍

    1.Certification(证书) 证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种: 1)Developer Certification(开发证书) 安装在电脑上提供权限:开发人员通过 ...

  10. Spring第12篇—— Spring对Hibernate的SessionFactory的集成功能

    由于Spring和Hibernate处于不同的层次,Spring关心的是业务逻辑之间的组合关系,Spring提供了对他们的强大的管理能力, 而Hibernate完成了OR的映射,使开发人员不用再去关心 ...