重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
java对象是不能直接传输,只有json对象 转成字符串 可以进行传输 故 传输中都是json进行的 接收到json数据之后
创新互联公司是一家集网站建设,东光企业网站建设,东光品牌网站建设,网站定制,东光网站建设报价,网络营销,网络优化,东光网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
java在进行解析转换成为字符串。且json适用于很多语言之间的传输 json本质上就是一个map。
对应有两种json进行解析 首先就是先对json的合法性进行验证 是否可以进行解析
oracle截取某一个字符之前或之后的值;substr();instr()
函数介绍:
截取的函数:
substr(?,?);
substr(?,?,?);

获取目标字符出现的位置:
instr(? , ? , ? );
instr( ? , ? , ? , ? )

例:
字符串 "AAA-BBB" 截取"AAA" "BBB"
select substr('AAA-BBB',1,instr('AAA-BBB','-',-1)-1) 值 from dual;

select substr('AAA-BBB',instr('AAA-BBB','-',-1)+1) 值 from dual;

原文链接:
打开CSDN,阅读体验更佳


oracle截取字符串(截取某个字符前面的字符串)_真我的风采i的博客-CSDN...
也可能不含“+” B.要求如果该字符串含有“+”,则取“+”之前的字符 例:ORC+001 取ORC C.如果该字符串不含"+",则直接取该字符串。 解答:利用ORACLE中 INSTR,SUBSTR以及CASE WHEN语法即可实现。 Oracle中函数 INSTR:INSTR方法的...
Oracle当中怎么截取字符串_怪 咖@的博客_oracle字符串截取
Oracle当中怎么截取字符串 1、字符串截取 substr(‘数据’,开始位置,截止位置); selectsubstr('abcdef',1,3)fromdual 1 instr(‘数据’,‘字符’); 他是从左向右来寻找的,寻找的最近的。
oracle按特定字符截取字符串
oracle,按特定字符,截取字符串,直接出结果 oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果
Oracle中字符串截取常用方法总结【推荐】
substr 函数:截取字符串 语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项,表示截取字符串长度。 示例: SELECT SUBSTR('Hello SQL!', 1) FROM dual --截取所有字符串,返回'Hello SQL!' SELECT SUBSTR('Hello SQL!', 2) FROM dual --从第2个字符开始,截取到末尾。返回'ello SQL!' SELECT
最新发布 Oracle 截取字符串substr函数使用方法
Oracle 截取字符串substr函数使用方法
继续访问
oracle截取字符串(截取某个字符前面的字符串)
要求:A.数据库表中的一个字符串 可能含有"+" 例:ORC+001 也可能不含“+” B.要求如果该字符串含有“+”,则取“+”之前的字符 例:ORC+001 取ORC C.如果该字符串不含"+",则直接取该字符串。 解答:利用ORACLE中 INSTR,SUBSTR以及CASE WHEN语法即可实现。 Oracle中函数 INSTR:INST...
继续访问
oracle截取字符添加数据库,oracle截取字符串前几位的方法_数据库
数据库关系的6个性质_数据库数据库关系的6个性质:1、每一列中的分量为同一类型的数据,来自同一个域;2、不同的列可出自同一个域;3、列的次序可以任意交换;4、任意两个元组不能完全相同;5、行的次序可以任意交换;6、每一个分量都必须是不可分的数据库。 oracle截取字符串前几位的方法Oracle提前某数据的前几位用substr函数。如test表中数据如下: 现要提取dept字段中的前两位,可用如下...
继续访问

oracle 截取某个字符串前面的字符串
select name,substr(name,1,instr(name,'.')-1) 前 ,substr(name,instr(name,'.')+1,length(name)-instr(name,'.')) 后 from user 这里截取的是第一个字符('.')
继续访问
js截取第一个逗号之前的字符串_啃食Oracle:字符串的猛操作验证数据substr,instr,to_number...
啃食Oracle:字符串的猛操作验证数据(考试成绩),substr,instr,to_number说Oracle某表中有一个字段score(成绩),借用with模拟students(学生)表情况如下With students as(Select '1' kh,'语文:125,数学:124,外语:130,综合:211,总分:590' score from dual unionSelect '2' k...
继续访问
oracle截取某一个字符之前或之后的值;substr();instr()
函数介绍: 截取的函数: substr(?,?); substr(?,?,?); 获取目标字符出现的位置: instr(? , ? , ? ); instr( ? , ? , ? , ? ) 例: 字符串 "AAA-BBB" 截取"AAA...
继续访问

oracle取字段部分内容,oracle截取字段中某部分数据
Oracle提前某数据的 前几位或后几位 用substr函数。如test表中数据如下:现要提取dept字段中的前两位,可用如下语句:select id,name,substr(dept,1,2) from test;结果:substr函数介绍:语法:substr(string,start,length)参数:string - 指定的要截取的字符串start - 必需,规定在字符串的何处开始正数 -...
继续访问
oracle根据某个字符取字符串的前面部分
SELECT SUBSTR(字段名,1,instr(字段名,’,’)-1) FROM 表名 –SUBSTR(参数一,参数二,参数三) 参数一:某个字符型字段 参数二:截取开始范围 参数三:截取结束范围 –instr(参数一,参数二) 参数一:某个字符型字段 参数二:需截取的某个特定字符 –instr(参数一,参数二)-1 减掉1其实就是截取到这个特定字符前面的位置 ...
继续访问
Oracle截取某个字段前几个字符subStr
场景: 1. 根据主账户查询子账户交易明细 2. 数据库只有子账户信息(子账户=18位主账户+6位子账户标志), 3. 筛选出多个子账户对应的唯一主账户信息 select distinct substr(BANK_ACCT_NO,1,18) BANK_ACCT_NO from table_name; 说明: 1. BANK_ACCT_NO: 子账户 2. substr(BANK_ACCT_NO,1,18): 1 起始位置, 18 截取长度 3. table_name: 表名 .
继续访问
热门推荐 Oracle中字符串截取最全方法总结
substr 函数:截取字符串 语法:SUBSTR(string,start,[length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项,表示截取字符串长度。 示例: SELECT SUBSTR('Hello SQL!', 1) FROM dual .........
继续访问

oracle取字段第三位字符,oracle截取字符串(截取某个字符前面的字符串)
要求:A.数据库表中的一个字符串 可能含有"+" 例:ORC+001也可能不含“+”B.要求如果该字符串含有“+”,则取“+”之前的字符 例:ORC+001 取ORCC.如果该字符串不含"+",则直接取该字符串。解答:利用ORACLE中 INSTR,SUBSTR以及CASE WHEN语法即可实现。Oracle中函数INSTR:INSTR方法的格式为INSTR(源字符串, 目标字符串, 起始位置, ...
继续访问
oracle截取符号后的字符串
例如:字符串 “AAA-BBB” 截取"AAA" “BBB” select substr('AAA-BBB',1,instr('AAA-BBB','-',-1)-1) 值 from dual; select substr('AAA-BBB',instr('AAA-BBB','-',-1)+1) 值 from dual;
继续访问
substr/instr
截取字符串 哼哼 substr 函数:截取字符串 语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项,表示截取字符串长度。 instr 函数:返回子字符串在源字符串中的位置 语法:INSTR(string,child_...
继续访问
oracle返回逗号前的字段,oracle中通过正则表达式函数处理逗号分隔的字段-Oracle...
oracle中通过正则表达式函数处理逗号分隔的字段这个题目的确不大好写,其实际含义基于一个场景:比如在oracle的某张表中,有两个字段A1 B11 A,B,C,D,2 E,F假如现在的需求,是要统计A1中,每条记录拥有多少个数目的B1,比如A1=1的时候,其B1的字段中有4个以逗号分隔的,所以数目为4,A1=2的,有E,F...
继续访问
oracle截取后面的字符,oracle截取最后一个字符
简单明了实用,废话不多说:selectsubstr('a,',2,1)fromdual;substr('要截取的字符',字符的长度,字符长度-1)延伸:selectsubstr(t.province,length(t.province),length(t.province)-1)fromt_d_Sysnoticetwheret.provinceisnotnull=================...
继续访问
oracle中 sql截取某个字符前面和后面的值
列如截取 ‘?’ 这一杆前后值 select 字段,substr(字段,1,instr(字段,’?’) - 1) 前,substr(字段,instr(字段,’?’) + 1,length(字段)) 后 from 表
继续访问
oracle截取某个字符串前面的字符串
oracle简单明了实用,废话不多说:
selectsubstr('a,',2,1)fromdual;
substr('要截取的字符',字符的长度,字符长度-1)
延伸:
selectsubstr(t.province,length(t.province),length(t.province)-1)fromt_d_Sysnotice twheret.provinceisnotnull
=============================================================================================
【补充 2014-06-30 17:12:48】根据某个特定的字符截取,比如:“/”
数据库中的数据:/res/upload/interface/apptutorials/country/fb3749d1-0621-423d-95e5-095bfce417e5.png
目标结果:fb3749d1-0621-423d-95e5-095bfce417e5.png
即从最后一个"/"截取,取到图片的名称,原本的路径+名称
执行sql语句,得到原本的数据结果:
selectp.countryname,p.countrypicfromt_d_Country pwherep.s_isdeleted = 0orderbynlssort(trim(p.countryname),'NLS_SORT=SCHINESE_PINYIN_M')asc
目标sql语句:
selectp.countryname,
substr(p.countrypic,
length(p.countrypic) - instr(p.countrypic, '/',-1,1)+4,
length(p.countrypic))
fromt_d_Country p
here p.s_isdeleted = 0;
关键的sql语句: substr(p.countrypic,
length(p.countrypic) - instr(p.countrypic, '/',-1,1)+4,
length(p.countrypic))
substr(“要截取的字符串”,"开始的位置",“截取的长度”)
select substr('abcdae', 1,1)from dual;
结果:a
select substr('abcdae', -1,1)from dual;
结果:e
instr(“字符串”,“字符”,“开始的位置”,“取的位置”)
select instr('abcdae','a',1,1) from dual;
结果:1
select instr('abcdae','a',1,2) from dual;
结果:5
select instr('abcdae','a',-1,1) from dual;
结果:5
【“开始的位置”为正数:顺着取;负数,倒着取】
oracle截取后面的字符
自动售货机的 售货机多少钱
精选推荐
广告

Oracle截取字符串去掉字段末尾指定长度的字符
3下载·0评论
2020年9月10日
oracle 获取字符串最后一个字符,使用regexp_instr获取字符串中的最后一个数字
1579阅读·0评论·0点赞
2021年5月2日
Oracle 截取字符串substr函数使用方法
2571阅读·0评论·0点赞
2022年11月7日
Oracle删除字符串中最后一个字符
4092阅读·0评论·1点赞
2021年6月17日
oracle截取最后一个字符
4.8W阅读·0评论·1点赞
2014年5月27日
oracle去掉字段中最后一个字符,Oracle截取字符串去掉字段末尾指定长度的字符
8190阅读·0评论·0点赞
2021年5月1日
这才是我想要的播放器,你用过了么?

精选推荐
广告
oracle截取符号后的字符串
3294阅读·0评论·1点赞
2022年1月12日
Oracle 截取最后一个分隔符的字符串
1106阅读·0评论·0点赞
2022年4月11日
oracle截取某一个字符之前或之后的值
8264阅读·0评论·2点赞
2021年9月10日
substr/instr
145阅读·0评论·0点赞
2019年12月24日
Oracle获取字符串的最后几位
3.0W阅读·0评论·3点赞
2018年8月6日
oracle中截取字段中某一个字符最后一次出现的位置到末尾
4412阅读·0评论·1点赞
2020年9月25日
Oracle截取字符串:instr、substr、length函数的使用
4296阅读·0评论·1点赞
2022年5月25日
oracle 截取字符串最后几位
8242阅读·0评论·0点赞
2013年4月19日
取最后一个字符 oracle,oracle截取最后一个字符
3943阅读·0评论·0点赞
2021年5月2日
oracle substr截取字符串后几位字符
3569阅读·0评论·0点赞
2022年1月24日
oracle中如何截取字符串中,某个字符后或者字符前的字符串
1.1W阅读·0评论·3点赞
2019年5月20日
js截取第一个逗号之前的字符串_啃食Oracle:字符串的猛操作验证数据substr,instr,to_number...
1893阅读·0评论·0点赞
2020年11月27日
oracle获取字符串最后一个逗号后面的字符
1500阅读·3评论·0点赞
2021年2月3日
去首页
看看更多热门内容
很多朋友想知道如何获得oracle证书,下面就让我们来看看吧。
oracle认证分为oca、ocp、ocm三个等级,等级不同获取方式不同,oca认证已经与ocp认证合并,不再颁发证书,ocp证书可以在考过后收到的邮箱中的证书链接申请,OCM证书考过后Oracle美国总部将在2个月内直接寄送OCM证书、全球唯一识别号的OCM卡、OCM大师服装等系列物品。
oracle国际认证是什么
Oracle是甲骨文公司推出的一个数据库领域的认证,分为oca(数据库认证专员的进阶认证)、ocp(数据库认证专家)、ocm(认证大师)三个等级,不过现在oca认证已经与ocp认证合并,不能进行单独报考也不会颁发证书,Oracle认证是国际权威认证,拥有很高的价值和含金量。
oracle认证有没有用
Oracle是甲骨文公司推出的一个数据库领域的认证,Oracle认证的价值和含金量极高,拥有Oracle认证不仅可以从事DBA,还可以进一步进行学习,成为ERP实施、中间件管理、商业智能等企业最高薪酬的IT专家。目前国内Oracle认证人才需求量大,平均薪资高达每月15K,就业岗位覆盖80%以上的大中型企业。
如何获取oracle认证?我们一起来了解一下吧。
oracle认证的考试都需要先前往oracle授权的wdp中心进行培训,培训完成之后可以在PearsonVUE官网进行对应考试科目的报名,然后预约好考试时间与地点并交纳费用,最后按时参加考试即可,通过考试即可获得相应的oracle证书,注意ocm认证的考试只能在北京和上海的Oracle大学进行。
oracle认证考试费用
Oracle认证分为oca、ocp、ocm三个等级,等级不同,考试费用不同,oca认证已经不能进行单独报考也不会颁发证书,因为oca认证已经与ocp认证合并,ocp的考试费用在6800元左右,ocm认证的考试费用为2000美元。
oracle认证有没有用
oracle认证有用,Oracle是甲骨文公司推出的一个数据库领域的认证,Oracle认证的价值和含金量极高,拥有Oracle认证不仅可以从事DBA,还可以进一步进行学习,成为ERP实施、中间件管理、商业智能等企业最高薪酬的IT专家。目前国内Oracle认证人才需求大,平均薪资高达每月10K左右。
可以通过dbms_lob来辅助查询:
--创建测试表
create
table
tt1
(XXName
varchar2(20),ProductIDs
blob);
--向测试表中插入数据
insert
into
tt1
select
'a',to_blob('a001b002')
from
dual;
--查询blob字段中含有'a001'的记录select
XXName
from
tt1
where
mod(dbms_lob.instr(ProductIDs,'a001'),2)=1
--删除测试表
drop
table
tt1;
-- 首先,以超级管理员的身份登录oracle
sqlplus sys/bjsxt as sysdba
--然后,解除对scott用户的锁
alter user scott account unlock;
--那么这个用户名就能使用了。
--(默认全局数据库名orcl)
1、select ename, sal * 12 from emp; --计算年薪
2、select 2*3 from dual; --计算一个比较纯的数据用dual表
3、select sysdate from dual; --查看当前的系统时间
4、select ename, sal*12 anuual_sal from emp; --给搜索字段更改名称(双引号 keepFormat 别名有特殊字符,要加双引号)。
5、--任何含有空值的数学表达式,最后的计算结果都是空值。
6、select ename||sal from emp; --(将sal的查询结果转化为字符串,与ename连接到一起,相当于Java中的字符串连接)
7、select ename||'afasjkj' from emp; --字符串的连接
8、select distinct deptno from emp; --消除deptno字段重复的值
9、select distinct deptno , job from emp; --将与这两个字段都重复的值去掉
10、select * from emp where deptno=10; --(条件过滤查询)
11、select * from emp where empno 10; --大于 过滤判断
12、select * from emp where empno 10 --不等于 过滤判断
13、select * from emp where ename 'cba'; --字符串比较,实际上比较的是每个字符的AscII值,与在Java中字符串的比较是一样的
14、select ename, sal from emp where sal between 800 and 1500; --(between and过滤,包含800 1500)
15、select ename, sal, comm from emp where comm is null; --(选择comm字段为null的数据)
16、select ename, sal, comm from emp where comm is not null; --(选择comm字段不为null的数据)
17、select ename, sal, comm from emp where sal in (800, 1500,2000); --(in 表范围)
18、select ename, sal, hiredate from emp where hiredate '02-2月-1981'; --(只能按照规定的格式写)
19、select ename, sal from emp where deptno =10 or sal 1000;
20、select ename, sal from emp where deptno =10 and sal 1000;
21、select ename, sal, comm from emp where sal not in (800, 1500,2000); --(可以对in指定的条件进行取反)
22、select ename from emp where ename like '%ALL%'; --(模糊查询)
23、select ename from emp where ename like '_A%'; --(取第二个字母是A的所有字段)
24、select ename from emp where ename like '%/%%'; --(用转义字符/查询字段中本身就带%字段的)
25、select ename from emp where ename like '%$%%' escape '$'; --(用转义字符/查询字段中本身就带%字段的)
26、select * from dept order by deptno desc; (使用order by desc字段 对数据进行降序排列 默认为升序asc);
27、select * from dept where deptno 10 order by deptno asc; --(我们可以将过滤以后的数据再进行排序)
28、select ename, sal, deptno from emp order by deptno asc, ename desc; --(按照多个字段排序 首先按照deptno升序排列,当detpno相同时,内部再按照ename的降序排列)
29、select lower(ename) from emp; --(函数lower() 将ename搜索出来后全部转化为小写);
30、select ename from emp where lower(ename) like '_a%'; --(首先将所搜索字段转化为小写,然后判断第二个字母是不是a)
31、select substr(ename, 2, 3) from emp; --(使用函数substr() 将搜素出来的ename字段从第二个字母开始截,一共截3个字符)
32、select chr(65) from dual; --(函数chr() 将数字转化为AscII中相对应的字符)
33、select ascii('A') from dual; --(函数ascii()与32中的chr()函数是相反的 将相应的字符转化为相应的Ascii编码) )
34、select round(23.232) from dual; --(函数round() 进行四舍五入操作)
35、select round(23.232, 2) from dual; --(四舍五入后保留的小数位数 0 个位 -1 十位)
36、select to_char(sal, '$99,999.9999')from emp; --(加$符号加入千位分隔符,保留四位小数,没有的补零)
37、select to_char(sal, 'L99,999.9999')from emp; --(L 将货币转化为本地币种此处将显示¥人民币)
38、select to_char(sal, 'L00,000.0000')from emp; --(补零位数不一样,可到数据库执行查看)
39、select to_char(hiredate, 'yyyy-MM-DD HH:MI:SS') from emp; --(改变日期默认的显示格式)
40、select to_char(sysdate, 'yyyy-MM-DD HH:MI:SS') from dual; --(用12小时制显示当前的系统时间)
41、select to_char(sysdate, 'yyyy-MM-DD HH24:MI:SS') from dual; --(用24小时制显示当前的系统时间)
42、select ename, hiredate from emp where hiredate to_date('1981-2-20 12:24:45','YYYY-MM-DD HH24:MI:SS'); --(函数to-date 查询公司在所给时间以后入职的人员)
43、select sal from emp where sal to_number('$1,250.00', '$9,999.99'); --(函数to_number()求出这种薪水里带有特殊符号的)
44、select ename, sal*12 + nvl(comm,0) from emp; --(函数nvl() 求出员工的"年薪 + 提成(或奖金)问题")
45、select max(sal) from emp; -- (函数max() 求出emp表中sal字段的最大值)
46、select min(sal) from emp; -- (函数max() 求出emp表中sal字段的最小值)
47、select avg(sal) from emp; --(avg()求平均薪水);
48、select to_char(avg(sal), '999999.99') from emp; --(将求出来的平均薪水只保留2位小数)
49、select round(avg(sal), 2) from emp; --(将平均薪水四舍五入到小数点后2位)
50、select sum(sal) from emp; --(求出每个月要支付的总薪水)
------------------------/组函数(共5个):将多个条件组合到一起最后只产生一个数据------min() max() avg() sum() count()----------------------------/
51、select count(*) from emp; --求出表中一共有多少条记录
52、select count(*) from emp where deptno=10; --再要求一共有多少条记录的时候,还可以在后面跟上限定条件
53、select count(distinct deptno) from emp; --统计部门编号前提是去掉重复的值
------------------------聚组函数group by() --------------------------------------
54、select deptno, avg(sal) from emp group by deptno; --按照deptno分组,查看每个部门的平均工资
55、select max(sal) from emp group by deptno, job; --分组的时候,还可以按照多个字段进行分组,两个字段不相同的为一组
56、select ename from emp where sal = (select max(sal) from emp); --求出
57、select deptno, max(sal) from emp group by deptno; --搜素这个部门中薪水最高的的值
--------------------------------------------------having函数对于group by函数的过滤 不能用where--------------------------------------
58、select deptno, avg(sal) from emp group by deptno having avg(sal) 2000; (order by )--求出每个部门的平均值,并且要 2000
59、select avg(sal) from emp where sal 1200 group by deptno having avg(sal) 1500 order by avg(sal) desc;--求出sal1200的平均值按照deptno分组,平均值要1500最后按照sal的倒序排列
60、select ename,sal from emp where sal (select avg(sal) from emp); --求那些人的薪水是在平均薪水之上的。
61、select ename, sal from emp join (select max(sal) max_sal ,deptno from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno=t.deptno); --查询每个部门中工资最高的那个人
------------------------------/等值连接--------------------------------------
62、select e1.ename, e2.ename from emp e1, emp e2 where e1.mgr = e2.empno; --自连接,把一张表当成两张表来用
63、select ename, dname from emp, dept; --92年语法 两张表的连接 笛卡尔积。
64、select ename, dname from emp cross join dept; --99年语法 两张表的连接用cross join
65、select ename, dname from emp, dept where emp.deptno = dept.deptno; -- 92年语法 表连接 + 条件连接
66、select ename, dname from emp join dept on(emp.deptno = dept.deptno); -- 新语法
67、select ename,dname from emp join dept using(deptno); --与66题的写法是一样的,但是不推荐使用using : 假设条件太多
--------------------------------------/非等值连接------------------------------------------/
68、select ename,grade from emp e join salgrade s on(e.sal between s.losal and s.hisal); --两张表的连接 此种写法比用where更清晰
69、select ename, dname, grade from emp e
join dept d on(e.deptno = d.deptno)
join salgrade s on (e.sal between s.losal and s.hisal)
where ename not like '_A%'; --三张表的连接
70、select e1.ename, e2.ename from emp e1 join emp e2 on(e1.mgr = e2.empno); --自连接第二种写法,同62
71、select e1.ename, e2.ename from emp e1 left join emp e2 on(e1.mgr = e2.empno); --左外连接 把左边没有满足条件的数据也取出来
72、select ename, dname from emp e right join dept d on(e.deptno = d.deptno); --右外连接
73、select deptno, avg_sal, grade from (select deptno, avg(sal) avg_sal from emp group by deptno) t join salgrade s on (t.avg_sal between s.losal and s.hisal);--求每个部门平均薪水的等级
74、select ename from emp where empno in (select mgr from emp); -- 在表中搜索那些人是经理
75、select sal from emp where sal not in(select distinct e1.sal from emp e1 join emp e2 on(e1.sal e2.sal)); -- 面试题 不用组函数max()求薪水的最大值
76、select deptno, max_sal from
(select avg(sal) max_sal,deptno from emp group by deptno)
where max_sal =
(select max(max_sal) from
(select avg(sal) max_sal,deptno from emp group by deptno)
);--求平均薪水最高的部门名称和编号。
77、select t1.deptno, grade, avg_sal from
(select deptno, grade, avg_sal from
(select deptno, avg(sal) avg_sal from emp group by deptno) t
join salgrade s on(t.avg_sal between s.losal and s.hisal)
) t1
join dept on (t1.deptno = dept.deptno)
where t1.grade =
(
select min(grade) from
(select deptno, grade, avg_sal from
(select deptno, avg(sal) avg_sal from emp group by deptno) t
join salgrade s on(t.avg_sal between s.losal and s.hisal)
)
)--求平均薪水等级最低的部门的名称 哈哈 确实比较麻烦
78、create view v$_dept_avg_sal_info as
select deptno, grade, avg_sal from
(select deptno, avg(sal) avg_sal from emp group by deptno) t
join salgrade s on(t.avg_sal between s.losal and s.hisal);
--视图的创建,一般以v$开头,但不是固定的
79、select t1.deptno, grade, avg_sal from v$_dept_avg_sal_info t1
join dept on (t1.deptno = dept.deptno)
where t1.grade =
(
select min(grade) from
v$_dept_avg_sal_info t1
)
)--求平均薪水等级最低的部门的名称 用视图,能简单一些,相当于Java中方法的封装
80、---创建视图出现权限不足时候的解决办法:
conn sys/admin as sysdba;
--显示:连接成功 Connected
grant create table, create view to scott;
-- 显示: 授权成功 Grant succeeded
81、-------求比普通员工最高薪水还要高的经理人的名称 -------
select ename, sal from emp where empno in
(select distinct mgr from emp where mgr is not null)
and sal
(
select max(sal) from emp where empno not in
(select distinct mgr from emp where mgr is not null)
)
82、---面试题:比较效率
select * from emp where deptno = 10 and ename like '%A%';--好,将过滤力度大的放在前面
select * from emp where ename like '%A%' and deptno = 10;
83、-----表的备份
create table dept2 as select * from dept;
84、-----插入数据
insert into dept2 values(50,'game','beijing');
----只对某个字段插入数据
insert into dept2(deptno,dname) values(60,'game2');
85、-----将一个表中的数据完全插入另一个表中(表结构必须一样)
insert into dept2 select * from dept;
86、-----求前五名员工的编号和名称(使用虚字段rownum 只能使用 或 = 要使用 必须使用子查询)
select empno,ename from emp where rownum = 5;
86、----求10名雇员以后的雇员名称--------
select ename from (select rownum r,ename from emp) where r 10;
87、----求薪水最高的前5个人的薪水和名字---------
select ename, sal from (select ename, sal from emp order by sal desc) where rownum =5;