--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