ORACLE中关于表的一些特殊查询语句
1:如何判断字段的值里面:那些数据包含小写字母或大小字母
判断字段NAME的值里面有小写字母的记录
方式1:
SELECTNAMEFROMTEST WHEREregexp_like(NAME,'[[:lower:]]');
方式2
SELECTNAMEFROMTEST WHEREregexp_like(NAME,'[a-z]');
判断字段NAME的值里面有大写字母的记录
方式1:
SELECTNAMEFROMTEST WHEREregexp_like(NAME,'[[:upper:]]');
方式2:
SELECTNAMEFROMTEST WHEREregexp_like(NAME,'[A-Z]');
2:如何判断字段里面的值里面包含特殊字符
例如,我想找出表TEST的字段NAME里面包含特殊字符&的相关记录
SELECTNAMEFROMESCMOWNER.TEST WHEREregexp_like(NAME,'[&]');
3:如何判断字段里面的值前面或后面有空格
1:字段前面或后面存在空格的记录信息:
SELECT*FROMTESTWHERE length(NAME)>length(trim(NAME))
2:字段值前面存在空格的记录信息:
SELECT*FROMESCMOWNER.TEST WHERELENGTH(LTRIM(NAME))3:字段值后面存在空格的情况:
SELECT*FROMESCMOWNER.TEST WHERELENGTH(RTRIM(NAME))4:如何判断字段里面的值里面包含空格
一直以来,以为判断字段里面包含空格(空格位于任意位置)是一件特难、特麻烦的事情,但是在ORACLE的正则表达式函数REGEXP_LIKE面前,一切不在话下。
SELECT*FROMTESTWHEREREGEXP_LIKE(NAME,'()+');补充:下面看下Oracle的单表查询语句
使用Oracle数据库的测试表单:
--单表查询数据语法select(查询)*所有/查询的字段,多个字段,隔开from(来自)表名称 --查询所有员工的信息 select*fromscott.emp; select*fromdept; --查询所有员工的编号,姓名和职位指定字段名查找数据 selectempno,ename,jobfromemp; --查询所有员工的编号,姓名和年薪 select*fromemp; selectempno,ename,sal*12fromemp; --通过查询使用运算符不会对原有数据进行修改 --只是在查询的时候进行了运算,展现的是一个新的数据表格 selectempno,ename,sal*12fromemp; --计算1+1?提供了一个虚拟表,dual --dual是虚表,专用于测试使用 --可以给字段取别名 select1+1ASresult1fromdual; selectsysdateASDATESfromdual; --取别名sal*12改成incomeas可以省略 --''单引号代表字符串""取别名时用,如果别名包涵特殊字符使用""包起来 selectempno,ename,sal*12"年薪"fromemp; --查询所有的用户的姓名,职位和薪资,以如下方式进行显示 --姓名:xxx,职位:xxx,薪资:xxx --字符串拼接使用||连接不是+ select'姓名:'||ename||',职位:'||job||',薪资:'||salinfofromemp; --想展示所有的职位,不能有重复的排除重复 --去重复使用distinct selectdistinctjob,enamefromemp; --排序升序和降序(ascdesc) --排序需要指定排序的字段默认是升序asc --可以对数值日期字符串类型进行排序 select*fromemporderbyjobasc; --按薪水降序,如果薪水相同,再将老员工排到后面(日期降序) --按照多个字段进行排序,orderby只要写一次,后续的排序字段使用,隔开 selectempno,ename,hiredate,salfromemporderbysaldesc,hiredatedesc; --查询所有员工编号,姓名,年薪,按照年薪排序 --排序可以用别名 selectempno,ename,sal*12incomefromemporderbyincomedesc;总结
以上所述是小编给大家介绍的ORACLE中关于表的一些特殊查询语句,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!