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.其他

      欢迎各位补充~

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

      

  • 相关阅读:
    从Oracle提供两种cube产品说开
    Sql Server DWBI的几个学习资料
    Unload Oracle data into text file
    初学Java的几个tips
    我常用的Oracle知识点汇总
    benefits by using svn
    如何在windows上使用putty来显示远端linux的桌面
    building commercial website using Microsoft tech stack
    Understand Thread and Lock
    Update google calendar by sunbird
  • 原文地址:https://www.cnblogs.com/linezero/p/3252908.html
Copyright © 2011-2022 走看看