2017/4/13 SQL

来源:互联网 发布:qt语言编程 编辑:程序博客网 时间:2024/05/21 04:02

2017/4/13 SQL 学习笔记

  • ROW_NUMBER()

  • CASE WHEN

  • Substring()

  • CONVERT()

  • SSRS报表,BIDS的使用


ROW_NUMBER()

描述:返回结果集分区内行的序列号,每个分区的第一行从 1 开始。
语法:ROW_NUMBER()OVER(partition by c1 order by c2)

c1 是选择要分组的列,c2是排序的列,函数返回bitint类型。

实例:

表结构:
STUDENT(SNO,SNAME,SSEX ,SBIRTHDAY ,CLASS)

COURSE(CNO,CNAME,TNO)

SCORE(SNO,CNO,DEGREE)

TEACHER(TNO,TNAME, TSEX ,TBIRTHDAY , PROF ,DEPART )

查询score中选学一门以上课程的同学中分数为非最高分成绩的记录:

select * from (select Sno,Cno,Degree,ROW_NUMBER()over(PARTITION BY Cno order by Degree DESC) as num from Score) S1where S1.num > 1 order by Cno;

结果:
这里写图片描述


CASE WHEN

Case具有两种格式。简单Case函数和Case搜索函数。

–简单Case函数

CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END

–Case搜索函数

CASE WHEN sex = '1' THEN '男'WHEN sex = '2' THEN '女'ELSE '其他' END

这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。

–比如说,下面这段SQL,你永远无法得到“第二类”这个结果
CASE WHEN col_1 IN ( ‘a’, ‘b’) THEN ‘第一类’
WHEN col_1 IN (‘a’) THEN ‘第二类’
ELSE’其他’ END

详细:http://www.cnblogs.com/yazdao/archive/2009/12/09/1620482.html


Substring()

最常用到的方式如下(MYSql):

SUBSTR (str, pos)

由 < str> 中,选出所有从第 < pos> 位置开始的字元。请注意,这个语法不适用于 SQL Server 上。

SUBSTRING (str, pos, len)

由 < str>中的第 < pos> 位置开始,选出接下去的 < len> 个字元。


CONVERT()

定义和用法

CONVERT() 函数是把日期转换为新数据类型的通用函数。

CONVERT() 函数可以用不同的格式显示日期/时间数据。

语法:

CONVERT(data_type(length),data_to_be_converted,style)

data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

可以使用的 style 值:

Style ID Style 格式 100 或者 0 mon dd yyyy hh:miAM (或者 PM) 101 mm/dd/yy 102 yy.mm.dd 103 dd/mm/yy 104 dd.mm.yy 105 dd-mm-yy 106 dd mon yy 107 Mon dd, yy 108 hh:mm:ss 109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM) 110 mm-dd-yy 111 yy/mm/dd 112 yymmdd 113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h) 114 hh:mi:ss:mmm(24h) 120 或者 20 yyyy-mm-dd hh:mi:ss(24h) 121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h) 126 yyyy-mm-ddThh:mm:ss.mmm(没有空格) 130 dd mon yyyy hh:mi:ss:mmmAM 131 dd/mm/yy hh:mi:ss:mmmAM

SSRS报表,BIDS的使用

http://www.cnblogs.com/CareySon/archive/2012/02/27/2369511.html

0 0
原创粉丝点击