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 NOT IN
           (
          
SELECT TOP 页大小 * ( - 1 ) id FROM table  ORDER BY id
           )
ORDER BY id
贰:
SELECT TOP 页大小 *
FROM table
WHERE id >
           (
          
SELECT ISNULL ( MAX (id), 0 )
          FROM
                (
               
SELECT TOP 页大小 * ( - 1 ) id FROM table  ORDER BY id
                )
A
           )
ORDER BY id
叁:
SELECT TOP 页大小 *
FROM
         (
        
SELECT ROW_NUMBER() OVER ( ORDER BY id) AS RowNumber * FROM table
         ) A
WHERE RowNumber > 页大小 * (页数 - 1 )
若查询所有:SELECT  * , ROW_NUMBER() OVER (ORDERBY id) AS RowNumber *FROM table
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值