- select table_name from user_tables;
- inline视图是指在查询或者更新或者其他操作中使用一个类似与视图一样得结构,但实际上这个视图是一次性的,其结构没有被存储到oracle中,只是临时使用而已。
- 连接操作 ||
- select语句:select ename,sal,
case when sal<=2000 then 'UNDERPAIND'
when sal>=4000 then 'OVERPAID'
else 'OK'
end as status
from emp - ENAME SAL STATUS
---------- ---------- ----------
SMITH 800 UNDERPAIND
ALLEN 1600 UNDERPAIND
WARD 1250 UNDERPAIND
JONES 2975 OK - 限定返回的行数:select * from emp where rownum<=5;注意,先取行,判断条件,在递增rownum。如果取第5行rownum=5,是错误的。因为第一行就不满足条件,永远是第一行。
- coalesce--函数用实际的值来替换空值,语句如下:
select coalesce(comm,0) from emp;
- 按模式搜搜:select ename,job from emp where deptno in (10,20)
and (ename like '%I%' or job like '%ER');
- 排序 order by中,优先次序从左到右。一般情况下,可以按照select列表中没有的列来排序,但是必须显式地给出排序的序名。如果在查询中使用group by或distinct语句,则不能按照select列表中没有的列来排序。
- 按照职位字段的最后两个字符排序:select ename,job from emp order by substr(job,length(job)-2);
- translate 与 replace的区别 :
- TRANSLATE ('abcd', 'ab', '12') ==> '12cd'
TRANSLATE ('12345', '15', 'xx') ==> 'x234x'
TRANSLATE ('grumpy old possum', 'uot', '%$*') ==> 'gr%mpy $ld p$ss%m'
TRANSLATE ('my language needs the letter e', 'egms', 'X')
==>
'y lanuaX nXXd thX lXttXr X';
TRANSLATE ('please go away', 'a', NULL) ==> NULL
REPLACE ('CAT CALL', 'C') ==> 'AT ALL'
REPLACE ('Zero defects in period 99 reached 99%!', '99', '100')
==>
'Zero defects in period 100 reached 100%!'
REPLACE ('this that and the other', 'th', 'z') ==> 'zis zat and ze ozer' - 总结:translate是逐个代替,replace是组合代替。