• SqlServer 基础知识数据检索、查询排序



    --执行顺序 From Where Select
    select * from
    (select sal as salary,comm as commission from emp ) x where salary<5000
    --得出 Name Work as a Job
    select ename +' Work as a'+job as msg from emp where deptno=10

    --如果员工工资小于2000返回UnderPaid 大于等于4k 返回OverPaid 之间返回OK
    select ename,sal,
    case when sal<2000 then 'UnderPaid'
    when sal>=4000 then 'OverPaid'
    else
    'OK'
    end
    from emp

    --从表中随机返回N条记录 newid()
    --
    order by 字句中指定数字常量时,是要求根据select列表中相应位置的列排序
    --
    order by 字句中用函数时,则按函数在没一行计算结果排序
    select top 5 ename from emp order by newid()

    --找空值is null
    select * from emp where comm is null

    --将空值转换为实际值
    --
    解释:返回其参数中第一个非空表达式
    --
    coalesce 联合,合并,结合.英音:[,kəuə'les]美音:[,koə'lɛs]
    select coalesce(comm, 1),empNo from emp

    --按模式搜索
    --
    返回匹配特定子串或模式的行
    select ename,job
    from emp
    where deptno in(10,20)

    --按子串排序 按照职位字段的 最后两个字符排序
    select ename, job from emp order by substring(job,len(job)-2,2)
    --select top 2 len(job)-2 from emp
    --
    select top 2 job from emp

    --☆☆☆☆☆处理排序空值☆☆☆☆☆ [只能是大于0]
    select ename ,sal,comm
    from emp
    order by 1 desc
    -- 以降序或升序方式排序非空值,将空值放到最后,可以用case
    select ename,sal,comm from
    (
    select ename ,sal,comm ,
    case when comm is null then 0 else 1 end as A
    from emp
    ) x
    order by A desc ,comm desc

    
    
    
    



    ---------------------------------------------2011-11-02 常见 基本的 分页SQL 语句---------------------------------------------------------
    壹:
    SELECT TOP 页大小 *
    FROM table
    WHERE id NOTIN
               (
              
    SELECT TOP 页大小*(-1) id FROM table  ORDERBY id
               )
    ORDERBY id
    贰:
    SELECT TOP 页大小 *
    FROM table
    WHERE id >
               (
              
    SELECTISNULL(MAX(id),0)
              FROM
                    (
                   
    SELECT TOP 页大小*(-1) id FROM table  ORDERBY id
                    )
    A
               )
    ORDERBY id
    叁:
    SELECT TOP 页大小 *
    FROM
             (
            
    SELECT ROW_NUMBER() OVER (ORDERBY id) AS RowNumber *FROM table
             ) A
    WHERE RowNumber > 页大小*(页数-1)
    若查询所有:SELECT  * , ROW_NUMBER() OVER (ORDERBY id) AS RowNumber *FROM table


    作者:PEPE
    出处:http://pepe.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    openGL
    shader
    安卓2
    安卓
    错误整理
    3D图形学
    shaderlab
    MVC
    一、TCP扫描技术
    端口扫描技术
  • 原文地址:https://www.cnblogs.com/PEPE/p/2220750.html
Copyright © 2020-2023  润新知