zoukankan      html  css  js  c++  java
  • 常用的一些SQL语句整理,也许有你想要的。

    本篇文章是对一些常用的sql语句进行了总结与分析,需要的朋友参考下,也许会有你需要的。

    1.SQL行列转换

    问题:假设有张学生成绩表(tb)如下:
    姓名 课程 分数
    张三 语文 74
    张三 数学 83
    张三 物理 93
    李四 语文 74
    李四 数学 84
    李四 物理 94
    想变成(得到如下结果): 
    姓名 语文 数学 物理 
    ---- ---- ---- ----
    李四 74 84 94
    张三 74 83 93

    sql语句为:

    select 姓名 as 姓名 ,
    max(case 课程 when '语文' then 分数 else 0 end) 语文,
    max(case 课程 when '数学' then 分数 else 0 end) 数学,
    max(case 课程 when '物理' then 分数 else 0 end) 物理
    from tb
    group by 姓名

    2.SQL分页

    --分页方案一:(利用Not In和SELECT TOP分页) 
    语句形式: 
    SELECT TOP 10 * FROM TestTable
    WHERE (ID NOT IN(SELECT TOP 20 id FROM TestTable ORDER BY id)) 
    ORDER BY ID 
    
    
    SELECT TOP 页大小 * FROM TestTable 
    WHERE (ID NOT IN (SELECT TOP 页大小*页数 id FROM 表 ORDER BY id)) 
    ORDER BY ID 
    
    ------------------------------------- 
    
    --分页方案二:(利用ID大于多少和SELECT TOP分页) 
    语句形式: 
    SELECT TOP 10 * FROM TestTable 
    WHERE (ID > (SELECT MAX(id) FROM (SELECT TOP 20 id FROM TestTable ORDER BY id) AS T)) 
    ORDER BY ID 
    
    
    SELECT TOP 页大小 * FROM TestTable 
    WHERE (ID > (SELECT MAX(id) FROM (SELECT TOP 页大小*页数 id FROM 表 ORDER BY id) AS T)) 
    ORDER BY ID 
    
    ------------------------------------- 
    
    --分页方案三:(利用SqlServer2005中的新特性ROW_NUMBER进行分页)
    
    Select * FROM (
      select ROW_NUMBER()Over(order by id desc) as rowId,* from TestTable
    ) as mytable
    where rowId between 21 and 40

    大家根据自己的需要选择对应的sql语句。

    提示:方案三必须为sqlserver2005以上版本才可使用。

    3.SQL查询结果合并

    使用UNION 和UNION ALL。UNION ALL 和 UNION 不同之处在于 UNION ALL 会将每一个符合条件的资料都列出来,无论资料值有无重复。

    --合并重复行
    select * from A
     union
    select * from B
    
    --不合并重复行
    select * from A
     union all
    select * from B

    提示:两个表查询的结果相同,才能进行合并

    4.SQL随机排序

    使用ORDER BY NEWID()

    SELECT * FROM TestTable ORDER BY NEWID()
    

    5.其他

      欢迎各位补充~

      如果有不对的地方还请指出,如果你觉得这个整理对你有所帮助,就点下推荐,谢谢。

      

  • 相关阅读:
    std 迭代器的几种用法
    Cocos2dx3.1+xcode +lua配置
    php获取文件创建时间、修改时间
    如何创建一个基于jquery的编辑器
    封装ajax,简单的模仿jquery提交
    如何实现SQL事务的提交,又不对外进行污染
    .net mvc结合微软提供的FormsAuthenticationTicket登陆
    Http GET、Post方式的请求总结
    post 报文请求接口方法
    zip格式压缩、解压缩(C#)
  • 原文地址:https://www.cnblogs.com/linezero/p/3252908.html
Copyright © 2011-2022 走看看