1_ case表达式 和限制行数,随机返回行数

来源:互联网 发布:德怀特霍华德生涯数据 编辑:程序博客网 时间:2024/06/07 02:17

--1.case表达式,用于如果...则....

--如果一个员工的工资小于2000则返回消息‘’underpaid’,如果大于4000则返回消息overpaid,,如果在这两者之间则返回‘ok’

       select  ename,sal,

            case when sal<=2000 then 'underpaid'

                      when sal >=4000 then ‘overpaid’

                      else  'ok'

                     end  as status 

        from  emp


--2:限制返回行数


--1>:SQL server    中使用top 关键字来限制返回的行数

         select    top  5 * from emp


--2>:Oracle    中在where子句中通过使用rownum 来限制行数

         select  * from emp  where rownum <=5

       注意oracle中不能用rownum=5,因为Oracle是先返回数据,再根据数据编行数,再来限制行数的,不返回1行到第4行,就不会有第5行


--3>:mySQL 和PostgreSQL    使用limit 

       select  * from emp limit  5


 --4>:DB2  使用fetch first 

        select  * from emp  fetch first  5 rows  only


-3:从表中随机返回n条记录


    --1>SQL server  同时使用内置函数 top, order by ,newid ()返回随机结果

                select  top 5 ename ,jop from emp  order by  newid ()


   --2>:Oracle   使用dbms_random 包中的内置函数 order by , value(), 和内置函数 rownum

                 select  *   from   ( select  ename,jop  from emp  order by  dbms_random.value()  ) where  rownum < =5


   --3>DB2   同时使用内置函数 order by,  rand ()  ,和fetch

              select  ename,jop ,from emp  ordery  rand () fetch frist 5 rows only 


    --4>mySQL 同时使用内置函数order by ,rand(),limit 

               select  ename,jop, from emp  order by  rand() limit  5


    --5>:posgreSQL  同时使用内置函数  order by ,random ()和 limit 

               select  ename ,jop, from  emp  order by  random () limit  5

 

              

 


原创粉丝点击