例如:select * from user_constraints where table_name='大写表名'
2. 对于有内联视图的select查询语句,最外面的查询是最后执行的,要先将最外面的from后面的子句全部执行完毕后,才能执行select ..... where...;
但是,对于有connect by 树形迭代语句时,与最外面的select对应的where子句的位置一定要放在内联视图后面,而不能放在connect by 子句之后,否则会报错!例如:select deptno,
ltrim(sys_connect_by_path(ename,','),',') emps
from (
select deptno,
ename,
row_number() over (partition by deptno order by empno) rn,
count(*) over (partition by deptno) cnt
from emp
)
where level=cnt
start with rn=1
connect by prior deptno=deptno and prior rn=rn-1
/
而不能写成:select deptno,
ltrim(sys_connect_by_path(ename,','),',') emps
from (
select deptno,
ename,
row_number() over (partition by deptno order by empno) rn,
count(*) over (partition by deptno) cnt
from emp
)
start with rn=1
connect by prior deptno=deptno and prior rn=rn-1
where level=cnt
/
注意:一定要搞清楚语句的执行顺序、和where子句所在的位置。
解决方法:只能将其转换列
4. 在insert into table_name values (),在values和后面的括号之间一定要加个空格号
5. 对于null进行insert时可以用‘’代替
6. 对于ltrim(‘’,‘’)第三个参数要是删除的话就不用写,而对于translate(字符型)和replace(字符串型)要是删除的时候需要添加'';
7. 在开窗函数中,over (partition by .. order by ..)在partition by和order by之间不用逗号隔开,只需空格即可;
8. 看似是将行变换成列,实际上是将行与rownum进行笛卡尔基,变成多行,在从每行中提取出所需要的值;
9. replace和translate一般是一起用的,而instr和substr一般是一起用的(因为这两个函数都要用到数字(也就是字符所在的位置));
10. 注意:instr是字符型函数,instr(列名,'单个字符',起始位置,第几次出现);
11. where instr(translate(mixed,‘0123456789’,‘9999999999’),‘9’);精妙之处,可以筛选出纯数字或者纯字母
12. 对于一个字段的每一行都有几个字符串的话,如果要求将每一行的几个字符串转换成每行一个字符串。则需要笛卡尔基rownum。