1.oracle的转义字符(条件含有关键字)
如果要查询字符中含有’_’条件的结果,需要在语句中定义转义字符,如下所示:
定义语法escapte ‘要定义的字符串’
查询姓名含有‘_’的信息
Select * from employee where name like ‘%\_%’ escapte’\’
2.查询部门中姓名含有a和e的信息
Select * from employee where name like ‘%a%e%’;
Union
Select * from employee where name like ‘%e%a%’;
注意:‘%a’:表示字符末尾为a的字符串。
‘%a%’:表示字符含有a的字符串。
3.查询屏入职时间在‘1992-09-12‘到’2012-09-12‘期间入职的员工信息
Select * from employee where to_char( hire_date,’yyyy-MM-dd’) between ‘1992-09-12’ and ‘2012-09-12’
4.单行函数
Lower(字符串):将字符串全部转化成小写
Upper(字符串):将字符串全部转化成大写
Initcap(字符串):将字符串的第一个字母转化成大写,其他全部是小写
Select lower(‘ATIJAVa’) upper(‘ttijava’) initcap(‘attijava’) from dual;
Case。。When的用法
如下需求:查询部门好为10,20,30的员工信息,若部门号为10,则打印其工资的1.1倍,
部门号为20,则打印其工资的1.2倍,部门号为30,则打印其工资的1.3倍,如下语句:
Select * from employee_id,last_name,depart_id,case department_id when 10 then salary*1.1
when 20 then salary*1.2
Else salary*1.3 end new_sal
From employees
Where department_id in(10,20,30)
Decode 用法
如下需求:查询部门好为10,20,30的员工信息,若部门号为10,则打印其工资的1.1倍,
部门号为20,则打印其工资的1.2倍,部门号为30,则打印其工资的1.3倍,如下语句:
Select * from employee_id,last_name,depart_id,decode(department_id ,10,salary*1.1,
20 , salary*1.2,
salary*1.3) end new_sal
From employees
Where department_id in(10,20,30)
Nvl2用法
NVL2(expr1,expr2,expr3)
Oracle在NVL()的功能上扩展,提供了NVL2函数。
功能:oracle中常用函数,如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值;如果参数表达式expr1值不为NULL,则NVL2()函数返回参数表达式expr2的值。
Nvl用法
Oracle PL/SQL中的一个函数。
格式为:
NVL( string1, replace_with)
功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。
注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数进行类型转换。
小弟刚接触oracle,里面有很多不足之处,请原谅。