2017413 SQL

    xiaoxiao2021-04-15  149

    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) S1 where S1.num > 1 order by Cno;

    结果:


    CASE WHEN

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

    –简单Case函数

    CASE sex WHEN '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 IDStyle 格式100 或者 0mon dd yyyy hh:miAM (或者 PM)101mm/dd/yy102yy.mm.dd103dd/mm/yy104dd.mm.yy105dd-mm-yy106dd mon yy107Mon dd, yy108hh:mm:ss109 或者 9mon dd yyyy hh:mi:ss:mmmAM(或者 PM)110mm-dd-yy111yy/mm/dd112yymmdd113 或者 13dd mon yyyy hh:mm:ss:mmm(24h)114hh:mi:ss:mmm(24h)120 或者 20yyyy-mm-dd hh:mi:ss(24h)121 或者 21yyyy-mm-dd hh:mi:ss.mmm(24h)126yyyy-mm-ddThh:mm:ss.mmm(没有空格)130dd mon yyyy hh:mi:ss:mmmAM131dd/mm/yy hh:mi:ss:mmmAM

    SSRS报表,BIDS的使用

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

    转载请注明原文地址: https://ju.6miu.com/read-671343.html

    最新回复(0)