Oracle游标查询4、在上面练习的基础上,如果考虑存在雇员工资相同的情况,须将获得工资数额前n名的雇员全部输出。(1)

mki5ncm72022-10-04 11:39:541条回答

Oracle游标查询
4、在上面练习的基础上,如果考虑存在雇员工资相同的情况,须将获得工资数额前n名的雇员全部输出。
(1)例如输入n=2,那么King、Ford和Scott都会被输出。
(2)如果输入n=3,那么King、Ford、Scott、Jones都会被输出。
这个到底要怎么做啊 -
emp表检索出工资水平在前几名的雇员的姓名及工资,如果考虑存在雇员工资相同的情况,须将获得工资数额前n名的雇员全部输出。

已提交,审核后显示!提交回复

共1条回复
村山人 共回答了18个问题 | 采纳率88.9%
cursor cur1(number n)
is
select decode(n, 2, 'King, Ford, Scott', 3, 'King, Ford, Scott, Jones', null) as result from dual;
1年前

相关推荐

oracle如何跨用户(业务库)取数。两个业务库表结构都是一样的,目的是把两个表对比不相同的数据晒选出来
oracle如何跨用户(业务库)取数。两个业务库表结构都是一样的,目的是把两个表对比不相同的数据晒选出来
如:有用户user1和user2 。user1与user2的表结构都是一样的,且都有table表,表字段、数据类型等完全是一样的(user2是user1的备份库)。具体如下:
user1.table1
ID a b c
1 一 10 甲
2 二 20 乙
3 三 30 丙
user2.table2
ID a b c
1 一 30 甲
2 二 20 乙
3 三 10 丁
请告知,如何把user2.table2中,有变动的找出来,并根据字段标识出“是否变动”。
user2.table2
ID a 是否变动 b 是否变动 c 是否变动
1 一 否 30 是 甲 是
2 二 否 20 否 乙 否
3 三 否 10 是 丁 是
最后的结果就是以上这样。
silencexiaoyi1年前1
wp155089521 共回答了14个问题 | 采纳率100%
Select A.id , A.a , decode(A.a,B.a,'否','是')chnote, 其他同理.... From user1.tab1 A, user2.tab2 B where A.id =B.id(+)。
oracle 中select into是什么意思
oracle 中select into是什么意思
把一个表里面的内容复制到另一个吗 还是别的 是不是还要先创建一个表啊
create table aaa as select * from bbb 这样的效果 用select into 能做到么?
truelove20081年前1
100°C 共回答了15个问题 | 采纳率86.7%
这是一个复制表数据的操作.
创建aaa表,这里没有定义aaa表的字段以及类型,而是用select * from bbb,这就是把bbb里面所有的字段包含类型以及数据都复制到aaa中去.那么就创建了一张和bbb表一样的aaa表.包括数据等都一样.只是不包含bbb表中的主键以及约束等.
这个地方是不能使用select into来完成的.
select into 是SQLSERVER的语法:同样的效果select * into aaa from
英语翻译翻译为英语谢谢!我是指特指的不是随意翻译的是一听到就知道是说沃伦.巴菲特的就跟一说起oracle of omah
英语翻译
翻译为英语谢谢!
我是指特指的不是随意翻译的
是一听到就知道是说沃伦.巴菲特的
就跟一说起oracle of omaha一样
我们还不懂1年前3
kakaanddoudou 共回答了16个问题 | 采纳率81.3%
God of stock
Oracle字段追加内容在Oracle的Students表中有一列是科目,内容是“语文”,现在要在这一列的后面直接添加内
Oracle字段追加内容
在Oracle的Students表中有一列是科目,内容是“语文”,现在要在这一列的后面直接添加内容,让他成为“语文,数学”,请高手提点
dachun1982cn1年前1
小白zz 共回答了16个问题 | 采纳率87.5%
update students set 科目=科目||',数学' where 科目='语文
oracle中什么是同义词,它有几种类型,不同类型同义词的区别是什么?并写出语法?
双手虚掐内八字1年前1
hhzgjx 共回答了28个问题 | 采纳率89.3%
1、私有同义词
只能被当前用户访问.
2、公有同义词
可被所有的数据库用户访问.
创建同义词语法:
create [or replace] [public]
synonym 同义词名称
for [用户名.]对象名;
注释:[]中表示可写、或不写;[or replace]表示如果已经有了你要创建的同义词就取代/替换原有的同义词;[public]表示是否把同义词公有
oracle 时间相减函数本人现有一个表aaaa 其中e是起始时间(包含日期) f 是终止时间(包含日期)要求求出从起始
oracle 时间相减函数
本人现有一个表aaaa 其中e是起始时间(包含日期) f 是终止时间(包含日期)要求求出从起始时间到终止时间具体是多长时间,下班时间不包括在内,每天4:30下班,8点上班,
周六周日去除
ambrosini1971年前1
bbbbcccc6 共回答了12个问题 | 采纳率91.7%
创建一个日期比较的函数(datediff,网上找的),然后通过该函数返回天数×8.5 就是总共的小时数了,如果要精确点的话,就把首尾天数中的时间差刨了即可.
create or replace function datediff
(p_Component varchar2 ,
p_Subtranhend date,
p_Minuend date)
RETURN NUMBER
IS
//
v_ReturnValue number ; -- 结果数值
v_Component varchar2(10); --日期组件中间转换形式,截取空格并且转为大写
v_YearNum1 number; --减数年份数
v_YearNum2 number; --被减数年份数
v_MonthNum1 number; --减数月份数
v_MonthNum2 number; --被减数月份数
v_HourNum1 number; --减数时数
v_HourNum2 number; --被减数时数
v_MinuteNum1 number; --减数分钟数
v_MinuteNum2 number; --被减数分钟数
v_SecondNum1 number; --减数秒钟数
v_SecondNum2 number; --减数秒钟数
v_QuarterValue1 number; --减数季度数
v_QuarterValue2 number; --被减数季度数
v_WeekNum1 number; --减数与标准时间周差
v_WeekNum2 number; --被减数与标准时间周差
BEGIN
v_Component := upper(ltrim(rtrim(p_Component)));
if v_Component in ('Y','YY','YEAR','YYYY') then --年情况
v_YearNum1 := to_number(to_char(p_Subtranhend,'YYYY'));
v_YearNum2 := to_number(to_char(p_Minuend,'YYYY')) ;
v_ReturnValue := v_YearNum2 - v_YearNum1;
elsif v_Component in ('M', 'MM','MONTH', 'MON') then --月情况
--请注意,这个部分与oracle内置日期函数MONTH_BETWEEN()不同,忽略了日因素
--而后者的两个日期如都是所在月的最后一天,才返回整数,否则,返回分数
--而且这个分数是以31天作为一个月进行计算的结果
v_YearNum1 := to_number(to_char(p_Subtranhend,'YYYY'));
v_YearNum2 := to_number(to_char(p_Minuend,'YYYY')) ;
v_MonthNum1 := to_number(to_char(p_Subtranhend,'MM'));
v_MonthNum2 := to_number(to_char(p_Minuend,'MM'));
v_ReturnValue := (v_YearNum2 - v_YearNum1)*12 + (v_MonthNum2 - v_MonthNum1);
elsif v_Component in ( 'D', 'DD', 'DAY') then --日情况
--这里与两个日期直接相减的oracle日期算术也不同,只返回整数天数;
--而后者可以返回一天的几分之几(以小数形式表达)
v_ReturnValue := to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'),'YYYY-MM-DD');
elsif v_Component in ('H', 'HH', 'HOUR') then --时情况
--第一步:求出天数
v_ReturnValue := (to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'), 'YYYY-MM-DD'));
--第二步:求出时数
v_HourNum1 := to_number(to_char(p_Subtranhend,'HH24'));
v_HourNum2 := to_number(to_char(p_Minuend,'HH24'));
v_ReturnValue := v_ReturnValue*24 + (v_HourNum2 - v_HourNum1);
elsif v_Component in ('MI','MINUTE') then --分情况
--第一步:求出天数
v_ReturnValue := (to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'), 'YYYY-MM-DD'));
--第二步:求出时数
v_HourNum1 := to_number(to_char(p_Subtranhend,'HH24'));
v_HourNum2 := to_number(to_char(p_Minuend,'HH24'));
v_ReturnValue := v_ReturnValue*24 + (v_HourNum2 - v_HourNum1);
--第三步:求出分钟数
v_MinuteNum1 := to_number(to_char(p_Subtranhend,'MI'));
v_MinuteNum2 := to_number(to_char(p_Minuend,'MI'));
v_ReturnValue := v_ReturnValue*60 + (v_MinuteNum2 - v_MinuteNum1);
elsif v_Component in('S', 'SS', 'SECOND') then --秒情况
--第一步:求出天数
v_ReturnValue := (to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'),
'YYYY-MM-DD'));
--第二步:求出时数
v_HourNum1 := to_number(to_char(p_Subtranhend,'HH24'));
v_HourNum2 := to_number(to_char(p_Minuend,'HH24'));
v_ReturnValue := v_ReturnValue*24 + (v_HourNum2 - v_HourNum1);
--第三步:求出分钟数
v_MinuteNum1 := to_number(to_char(p_Subtranhend,'MI'));
v_MinuteNum2 := to_number(to_char(p_Minuend,'MI'));
v_ReturnValue := v_ReturnValue*60 + (v_MinuteNum2 - v_MinuteNum1);
--第四步:求出秒钟数
v_SecondNum1 := to_number(to_char(p_Subtranhend,'SS'));
v_SecondNum2 := to_number(to_char(p_Minuend,'SS'));
v_ReturnValue := v_ReturnValue*60 + (v_SecondNum2 - v_SecondNum1);
elsif v_Component in ('Q','QQ','QUARTER') then --季度情况
v_YearNum1 := to_number(to_char(p_Subtranhend,'YYYY'));
v_YearNum2 := to_number(to_char(p_Minuend,'YYYY')) ;
v_QuarterValue1 := to_number(to_char(p_Subtranhend,'Q'));
v_QuarterValue2 := to_number(to_char(p_Minuend,'Q'));
v_ReturnValue := (v_YearNum2 - v_YearNum1)*4 + (v_QuarterValue2 - v_QuarterValue1);
elsif v_Component in ('W','WW','WK','WEEK') then --周情况
--一周的起始日期应当为星期日
--关于周差的计算,尝试采用中间日期的方法
--经查,‘1-1-2’即公元一年1月2日为周日,我们就可以用两个时间分别与其相减求周差
--两个结果再相减,即可得到正确的数值
v_WeekNum1 := floor( (to_date(to_char(p_Subtranhend,'YYYY-MM-DD'),'YYYY-MM-DD') -
to_date('1-1-2','YYYY-MM-DD'))/7);
v_WeekNum2 := floor( (to_date(to_char(p_Minuend,'YYYY-MM-DD'),'YYYY-MM-DD') -
to_date('1-1-2','YYYY-MM-DD'))/7);
v_ReturnValue := v_WeekNum2 - v_WeekNum1;
else
v_ReturnValue := -88888;
end if;
RETURN v_ReturnValue;
EXCEPTION
WHEN OTHERS THEN
RETURN -99999;--例外处理
END datediff;
oracle 中where 子句中的OR可以用Like替代?
oracle 中where 子句中的OR可以用Like替代?
SELECT empno,ename
  FROM emp
  WHERE empno =7782 OR empno =7876;
  在WHERE语句中,以下哪个操作符可以取代OR?
  A. IN
  B. BETWEEN ……
  C. LIKE
  D. <=
  E. >=
wyi001年前1
乐圣天 共回答了20个问题 | 采纳率90%
A.IN
SELECT empno,ename
  FROM emp
  WHERE empno in (7782 ,7876);
求解oracle习题.10.Write a query to display the department name,l
求解oracle习题.
10.Write a query to display the department name,location name,number of employees,and the average salary for all employees in that department.Label the columns’ dname,loc,Number of People,and Salary,respectively.
DNAME LOC Number of People Salary
------------ --------- ---------------- --------
ACCOUNTING NEW YORK 3 2916.67
RESEARCH DALLAS 5 2175
SALES CHICAGO 6 1566.67
吹歌新人1年前1
tennise1 共回答了16个问题 | 采纳率93.8%
select d.dname,d.loc,count(e.*) as "Number of People",avg(e.salary) salary
from department d, employees e
where d.dno=e.dno
group by d.dname,d.loc ;
大概是这样了
oracle 时间分段的问题,是这样的,时段好比有一 :00:00:00-03:00:00 二 :03:00:00-06
oracle 时间分段的问题,
是这样的,时段好比有
一 :00:00:00-03:00:00
二 :03:00:00-06:00:00
三 :06:00:00-12:00:00
以上都是24进制的
给定一个时间段,我想判断它是否属于上面的某一时段?如果是的话属于哪一个或者两个甚至三个时间段?
比如
时间段:2:56:56-3:56:56 就同时属于第一个时间段和第二个时间段
正巧qmx1年前1
英雄之泪 共回答了17个问题 | 采纳率100%
select * from
table
where to_time(substr(col,1,8),'24hh:mi:ss')< to_time('02:56:56','24hh:mi:ss') and
to_time(substr(col,10,8),'24hh:mi:ss')>to_time('03:56:56','24hh:mi:ss')
如何用Oracle查询多个时间段的数据,如取出(2013-1-1到2013-4-1)和(2014-1-1到2014-4-
如何用Oracle查询多个时间段的数据,如取出(2013-1-1到2013-4-1)和(2014-1-1到2014-4-1)的数据?
如题,我在一个表中查询两个时间的数据,如何取出,我目前知道可以用or+between的方式,可是between会把后面的时间=,而我并不像要4月2日0点的数据,所以有可能通过大于(>)小于(
hzysh19701年前1
种菜妹不走 共回答了15个问题 | 采纳率93.3%
select * from table where (时间 >='2013-01-01 00:00:00' and 时间<='2013-04-01 23:59:59') or
(时间 >='2014-01-01 00:00:00' and 时间<='2014-04-01 23:59:59')
是这个意思?
oracle中substr(‘abcde’,-3,3)是什么意思
lovelovelike19201年前1
lkoooqqe311 共回答了22个问题 | 采纳率95.5%
substr截取字符串
‘abcde’---要截取的字符串
-3 ---从右向左第3个字符向后开始截取
3 --- 取三个字符
substr(‘abcde’,-3,3) 返回的结果是 cde
给你几个例子:
substr("ABCDEFG",0); //返回:ABCDEFG,截取所有字符
substr("ABCDEFG",2); //返回:CDEFG,截取从C开始之后所有字符
substr("ABCDEFG",0,3); //返回:ABC,截取从A开始3个字符
substr("ABCDEFG",0,100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回.
substr("ABCDEFG",0,-3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变.
《威尼斯商人》中的这句:"I am Sir Oracle,and when I open my lips,let no
《威尼斯商人》中的这句:"I am Sir Oracle,and when I open my lips,let no dog bark!"应该怎么翻?
何处是我朋友的家1年前3
sanqing0126 共回答了21个问题 | 采纳率85.7%
我是Oracle爵士,而当我说话时,别人不要插嘴!
open my lips 直译是张开嘴唇
意思是说话
no dog bark
不要有狗在叫
bark这里也是指说话
dog是指身边的其他人
带侮辱的意思
oracle 分析函数rank()over()使用,与group by的区别
oracle 分析函数rank()over()使用,与group by的区别
最近看到oracle的分析函数rank,经常与over一起使用,但是不是很清楚与group by的区别,看起来功能很相似,rank over的使用场景和分组group by 的区别
partition
顺便帮忙分析一下下面的 mysql的sql语句
SELECT id,
score,
rank
FROM (SELECT tmp.id,
tmp.score,
@rank := @rank + 1 AS rank
FROM (SELECT id,
score
FROM a
ORDER BY score desc) tmp,
(SELECT @rank := 0) a) RESULT;
有几个不太理解的地方
@rank算是变量的申明吗?@rank := @rank + 1 @rank的初始值是从哪里来的SELECT @rank := 0,算是rank的初始值么,
spotol1年前1
杨不懂 共回答了13个问题 | 采纳率84.6%
你这里的rank 就是参数吧.
oracle里面rank over 和 group by 是完全不一样的东西.
怎么还功能相似呢.理解不能.
rank over 的用法.
group by 只是在分组的时候使用.
oracle只显示每个分组都前几个数据
oracle只显示每个分组都前几个数据
加入a表有两列a1,a2
数据如下:
a1 a2
-----------
1 a
1 b
1 c
1 d
1 e
1 f
1 g
2 h
2 i
2 j
2 k
2 l
2 m
2 n
2 o
2 p
2 q
2 r
SQL怎么写才能只显示1和2中的前5个?
征文查1年前1
yinshangwei 共回答了14个问题 | 采纳率100%
select t.a1,t.a2 from
(select row_number() over (partition by a1 order by a2) rn,a.* from a) t
where t.rn <= 5
oracle 语句 where t1.row_id=t2.row_id(+)
qqguan721年前1
AspireMate 共回答了19个问题 | 采纳率94.7%
左连接,相当于
select ...
from t2 left join t1
on t1.row_id=t2.row_id
ORACLE 中 select B.f from a A left join b B on A.e=B.e 如果B.f为
ORACLE 中 select B.f from a A left join b B on A.e=B.e 如果B.f为空,B.f为0.怎么实现.
冰雪琪1年前2
helenahe 共回答了22个问题 | 采纳率95.5%
使用 nvl 函数可实现:
select nvl(B.f,0) from a A left join b B on A.e=B.e;
oracle日期为什么最早是公元前4712年1月1日?是能追溯的 最早的人类文明吗?
eastwoodrain1年前1
上帝知道不知道 共回答了11个问题 | 采纳率81.8%
因为儒略日的关系.儒略日的起点订在公元前4713年(天文学上记为 -4712 年)1月1日格林威治时间平午(世界时12:00).
儒略日(Julian day,JD)是指由公元前4713年1月1日,协调世界时中午12时开始所经过的天数,多为天文学家采用,用以作为天文学的单一历法,把不同历法的年表统一起来.
Oracle中如何将4行1列的数据转换为1行4列?如:数据 Name john Green smith jack 变为
Oracle中如何将4行1列的数据转换为1行4列?如:数据 Name john Green smith jack 变为
john Green smith jack
wrr1年前1
奔奔ff 共回答了22个问题 | 采纳率95.5%
WMSYS.WM_CONCAT
前提是ORACLE 10G
看看参考资料吧
英语翻译work with oracle database work for oracle database?
qmzeng1年前4
dqren 共回答了18个问题 | 采纳率88.9%
engage in Oracle database related work,
或be occupied in Oracle related jo
帮我看看这句英语的意思Typical Installation for Oracle Grid Infrastructu
帮我看看这句英语的意思
Typical Installation for Oracle Grid Infrastructure for a Cluster
我自己的翻译是,“oracle 网格基础设备中集群的典型安装”.
我就想知道这两个for是什么意思.用语法怎么解释这两个for各自的意思.
我看一本介词书上介绍for的意思如下:
表示“向,往”;“朝.方向去”;
表示”为了.";
表示“因为”;
表示“给”;
表示“时间或距离”;
表示”关于某人或某事“;
表示”交换”;
表示“为了要达到”;
表示“当做”;
上面的两个for是这里面哪个的意思.
zroad1年前1
61224263 共回答了17个问题 | 采纳率82.4%
Oracle Grid Infrastructure 是甲骨文公司开发的一个应用软件程序名称,或者可译为甲骨文网格基础框架.
For a Cluster应是簇,磁盘不同扇区存取文件的单位.
整句话可以理解为:在磁盘/电脑上典型安装Oracle Grid Infrastructure程序.
Oracle 怎样实现获取类似值(A,B,...,Z,AA,AB,.,AZ,BA,BB,...BZ,.
Oracle 怎样实现获取类似值(A,B,...,Z,AA,AB,.,AZ,BA,BB,...BZ,.
客户要求某一字段的取值为这种形式:A,B,...,Z,AA,AB,.,AZ,BA,BB,...BZ,.,要怎么实现比较好?需要用到哪些函数?还望大神指导一番,
现有系统中,表test中记录较少,mapcode字段的值为:A,B,C,D,.,Q.
需求:按字母顺序追加,如果到Z满了则AA,AB…AZ,BA,BB…规则类推至ZZ.
chafan1年前1
思露格格 共回答了24个问题 | 采纳率91.7%
declare
i int;
j int;
begin
for i in 65..90 loop --得到字母A-Z,如果只需要Q后面的,把65换为82
insert into test (mapcode) values (chr(i));
end loop;
for i in 65..90 loop
for j in 65..90 loop
insert into test (mapcode) values (chr(i)||chr(j));
end loop;
end loop;
end;
/
commit;
Oracle 中 using的用法问题
Oracle 中 using的用法问题
1.
SELECT e.last_name,d.department_name,d.location_id
FROM employees e JOIN departments d
USING (department_id );
里面using (department_id
2Q:In which three cases would you use the USING clause?(Choose three.)
A.You want to create a nonequijoin.
B.The tables to be joined have multiple NULL columns.
C.The tables to be joined have columns of the same name and different data types.
D.The tables to be joined have columns with the same name and compatible data types.
E.You want to use a NATURAL join,but you want to restrict the number of columns in the join condition.
能举例说明下吗?
将奖爱1年前1
信天翁 共回答了19个问题 | 采纳率89.5%
1.相当于 on e.department_id = d.department_id
即通过该字段将两个表关连
2.BDE
oracle中sum(decode(substrb(month,5,2),'04',sell,0)),
雨君心1年前1
xjx917 共回答了16个问题 | 采纳率81.3%
从month中第5个字节开始取2个字节的值(substrb部分);
然后判断该值,若该值等于'04',则取sell列的值,否则,取0值(decode部分);
然后将这些累计求和(sum部分).
本来不想重复回答了的
但看到楼上误导人家,所以,还是重复回答一遍了,在oracle下,有substrb和substr等2个函数的,取的意义是完全不一样的,一个是根据字符取,一个是根据字节取.
oracle中查询时间查询出date为2010年1月8日的所有记录.date列为date类型.谁帮我写一下
倏忽1年前1
wanjunc 共回答了23个问题 | 采纳率82.6%
select * from table where to_char(date,'yyyymmdd')='20100108';
英语翻译基于Web分布式、跨平台、构件化的体系结构,结合Oracle的关系型数据库系统,采用java面向对象的编程语言的
英语翻译
基于Web分布式、跨平台、构件化的体系结构,结合Oracle的关系型数据库系统,采用java面向对象的编程语言的开发环境
木南豆豆1年前1
SMD121212 共回答了16个问题 | 采纳率100%
Distributed Web-based,cross-platform,component-based architecture,combined with Oracle's relational database system,using java object-oriented programming language development environment
英语翻译精通Oracle,可以熟练编写复杂的存储过程和触发器
--毛毛--1年前1
小YOUyou 共回答了16个问题 | 采纳率81.3%
Proficient in Oracle,can be prepared by the skilled storage complex process and trigge
oracle OCP 中一道关于表的连接的题.不知哪位大哥不吝赐教.
oracle OCP 中一道关于表的连接的题.不知哪位大哥不吝赐教.
View the Exhibit and examine the description of the EMPLOYEES and DEPARTMENTS tables.
You want to display the LAST_NAME for the employees,LAST_NAME for the manager of the employees,
and the DEPARTMENT_NAME for the employees having 100 as MANAGER_ID.The following SQL
statement was written:
SELECT m.last_name "Manager",e.last_name "Employee",department_name "Department"
FROM employees m JOIN employees e
ON (m.employee_id = e.manager_id)
WHERE e.manager_id=100
JOIN departments d
ON (e.department_id = d.department_id);
Which statement is true regarding the output of this SQL statement?
A.The statement would provide the desired results.
B.The statement would not execute because the ON clause is written twice.
C.The statement would not execute because the WHERE clause is wrongly placed.
D.The statement would not execute because the self join uses the ON clause instead of the USING
clause.
Answer:C
hh
闲适套改1年前1
mandhelingsu 共回答了22个问题 | 采纳率90.9%
where 子句应当放到最后.
SELECT m.last_name "Manager",e.last_name "Employee",department_name "Department"
FROM employees m JOIN employees e
ON (m.employee_id = e.manager_id)
JOIN departments d
ON (e.department_id = d.department_id)
WHERE e.manager_id=100;
ORACLE 中 dbms_output.put_line('差'); 请大神 帮忙解释下这条语句是什么意思 解释的好
ORACLE 中 dbms_output.put_line('差'); 请大神 帮忙解释下这条语句是什么意思 解释的好 会追加分哦哦
绿竹1年前1
ii狂龙 共回答了15个问题 | 采纳率100%
dbms_output.put_line 这是系统的一个包,就是输出一个字符 差
就是把 差 这个字打印出来
oracle语句join和(+)的用法
oracle语句join和(+)的用法
oracle使用 left join或者right join,比如select A.*,B.* from A left join B on A.*=B.*.如果用(+)该怎么写,join语句后面定义一定要用on吗.
xiaofeizhe8881年前1
雪舞舞 共回答了17个问题 | 采纳率88.2%
on后面写的是连接条件 等价于 select .from A,B where A.*=B.*
两个表某个值比较大小的oracle查询怎么写
两个表某个值比较大小的oracle查询怎么写
有两个表A和B,A和B里面都有‘库号’和‘编码’这个要一致,然后要查A.数量 大于 sum(B.数量)的语句要怎么写
079131262431年前1
三灵草 共回答了13个问题 | 采纳率92.3%
select a.* from a,(select 库号,编码 ,sum(数量) 数量 from b group by 库号,编码) c
where a.库号=c.库号
and a.编码=c.编码
and a.数量>c.数量
oracle 问题,如下,怎么写呢?谁有好的思路?
oracle 问题,如下,怎么写呢?谁有好的思路?

有一张表,其中的一列是date类型,时间精确到年月日,时分秒,然后从这张表中,查出某天一共有多少条,然后按这个date类型排序,取中间值,然后再存到另一张表中,这张表是2013年1月1号0点0分0秒开始的,到现在,就是把2013年1月1号0点0分0秒,到现在,一共有多少天,那么,存到另一张表,就得存多少条。

然后、一周、一个月,也是一样,各分别存到另一张表中,sql怎么写?


happyfly951年前1
q6862369 共回答了21个问题 | 采纳率95.2%
用窗口函数试试,百度一下
oracle输出的日期有英文DECLAREnos date;m_vars date;BEGINm_vars :=to_d
oracle输出的日期有英文
DECLARE
nos date;
m_vars date;
BEGIN
m_vars :=to_date('&nos','YYYY-MM-DD');
dbms_output.put_line(m_vars);
END;
输出是
10-OCT-03
为什么啊 我想要的是yyyy-mm-dd
超级闪电猪1年前1
飞雨流花 共回答了23个问题 | 采纳率100%
DECLARE
nos date;
m_vars date;
BEGIN m_vars :=to_date('&nos','YYYY-MM-DD');
dbms_output.put_line(to_char(m_vars,'yyyy-mm-dd'));
END;
这样不就好了吗?
oracle stddev()和variance()函数的用法,在什么时候使用?
oracle stddev()和variance()函数的用法,在什么时候使用?
看书上面说是标准差和方差,方差的计算结果等于标准差的平方,但标准差的结果是怎样产生的?
3852067211年前1
如是星辰非昨夜 共回答了21个问题 | 采纳率95.2%
(1)标准差函数,在统计稳定的平均值是多少.
(2)ARIANCE(expr)用于计算x的方差.方差是一个统计函数,其定义为一组样本数据的偏离程度,等于标准
Oracle中有两个表T1和T2,结构相同.且T1中的数据和T2中的数据互不交叉,
Oracle中有两个表T1和T2,结构相同.且T1中的数据和T2中的数据互不交叉,
则select * from T1 union select * from T2 与 select * from T1 union all select * from T2 的结果( )
A.一定完全相同.
B.结果一定相同,只是顺序可能不同.
C.结果可能不同.
D.其中一个有语法错误.
后果总是黯然流泪1年前1
gqya 共回答了11个问题 | 采纳率81.8%
B.结果一定相同,只是顺序可能不同.
因为:
T1中的数据和T2中的数据互不交叉
oracle转换函数 to_date,to_char,to_number问题,求指教!
oracle转换函数 to_date,to_char,to_number问题,求指教!
issue_date:出票时间 timestamp类型
pay_time:支付时间 timestamp类型
我要求平均出票时间,就涉及到 (issue_date - pay_time)然后求和,但是求和需要转换!求大神赐教!
to_date
to_number
to_char都不行
提示如下:
select sum(to_number(issue_date - pay_time)) from order_flight --提示无效数字

select sum(to_date(issue_date - pay_time, 'yyyy-MM-dd')) from order_flight --提示数据类型不一致 应该为number但是却获得date

select sum(to_char(issue_date - pay_time, )) from order_flight --提示无效数字
kinechung1年前1
zhhr 共回答了10个问题 | 采纳率100%
将timestamp + 0 后,转换为date,再相减:
select sum((issue_date+0) - (pay_time+0) )) from order_flight
一些oracle基础测试题疑问 1.上图中的单行函数指的什么?(请举例说明) 2.上图中以表达式的形
一些oracle基础测试题疑问

1.上图中的单行函数指的什么?(请举例说明)
2.上图中以表达式的形式使用表达式...这个又是什么?(请举例形象说明)


3.为什么是删除视图?
jhgkjh2521年前1
晓浩浩 共回答了15个问题 | 采纳率80%
1,单行函数指每条数据返回一直值的函数,比如upper,to_char,to_date等等
但是sum,avg之类的不是,因为sum是把好多行数据合并出一个值出来,avg同理


2,就是指这样
比如
delete from 表名 where to_char(id) in (select to_char(id) from 另一个表)
就是条件中的字段和子查询的字段都要用函数表示


3,这个我感觉就是个文字游戏啊,你看它前边有前提,说的是当删除表时,当删除表时,后三个都会直接报错,执行不了了,只有这个 view处于失效状态,所以只能执行这个drop view
oracle中 between 用法
ntsc1年前1
704706 共回答了12个问题 | 采纳率83.3%
a between 1 and 10 等同与
a>=1 and a
ORACLE Check complete.The overall result of this check is:Fa
ORACLE Check complete.The overall result of this check is:Failed
zc197520011年前1
baiwencai 共回答了17个问题 | 采纳率94.1%
安装时候的自动检查,不满足不允许你安装,看看是些什么东西不满足,给它满足了,重新CHECK,内存空间不足这种可以手动给置上用户确认过了,它就认为这个不需要检查了.
Oracle查询条件的检索顺序 select * from tabel_1 t where t.aa like '%aa
Oracle查询条件的检索顺序 select * from tabel_1 t where t.aa like '%aaa%' and t.bb like '%ccc%'
请问:就上述语句,Oracle的机制会怎样查找符合条件的结果
1:先找到符合 bb like ccc 的结果,再从该结果中找 aa like aaa
2:先找到符合 aa like aaa 的结果,再从该结果中找 bb like ccc
是使用1 还是 2呢?
ldld09271年前1
青莎阁小区业主 共回答了16个问题 | 采纳率87.5%
oracle10g及其以上版本 会使用CBO选择,所以oracle会自动调整查询顺序根据效率.
你的问题要看哪个快,oracle就自动选顺序.不需要在意
suse10本机安装oracle10g,报错must be configured to display at least
suse10本机安装oracle10g,报错must be configured to display at least 256 colors Failed
oracle@linux-3duk:/home/oracle10g_db/Disk1> id oracle
uid=1001(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba)
1.用oracle用户安装报错
Checking monitor:must be configured to display at least 256 colors Failed
echo $DISPLAY
129.53.6.15:0.0
lcbin8181年前1
songgang1225 共回答了18个问题 | 采纳率94.4%
1、root 下先执行#xhost +
2、su oracle
3、export DISPLAY=:0.0
OK!
英语翻译Therefore,when Oracle rolls back,it isreally doing the l
英语翻译
Therefore,when Oracle rolls back,it is
really doing the logical equivalent of the opposite of what we did in the first place.
敲罗1年前3
krccjf 共回答了14个问题 | 采纳率78.6%
因此,当甲骨文回滚,它是
真正这样做的逻辑相当于相反我们没有摆在首位.
oracle语句中,某个段值想四舍五入,并且保留小数点的后2位,是不是有函数可以直接写出来;
oracle语句中,某个段值想四舍五入,并且保留小数点的后2位,是不是有函数可以直接写出来;
select bytes/1024/1024/1024 G from sys_order 查询出来的结果是17.256365,麻烦请帮我写出结果为17.26所用的方法来
a3asu1年前1
潭影碧痕 共回答了12个问题 | 采纳率83.3%
select round(bytes/1024/1024/1024,2) G from sys_order
如何使用 Oracle Round 函数 (四舍五入)
描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果.
SELECT ROUND( number, [ decimal_places ] ) FROM DUAL
参数:
number : 欲处理之数值
decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )
Sample :
select round(123.456, 0) from dual; 回传 123
select round(123.456, 1) from dual; 回传 123.5
select round(123.456, 2) from dual; 回传 123.46
select round(123.456, 3) from dual; 回传 123.456
select round(-123.456, 2) from dual; 回传 -123.46
大家帮我看看这个oracle函数的错误
大家帮我看看这个oracle函数的错误
我第一次写函数,是仿照别人的例子写的,
create or replace function get_Teacher_train(R_Code varchar2)
return varchar2
is
R_Name varchar2(2000);
begin
select d.CourseName,c.classcode,c.opendate into R_Name//报错:ORA-00947:not enough values
from LTTeacherInfo a join LTClassToStudent b join LTClassInfo c join LTCourseInfo d//报错:SQL Statement ignored
on d.coursecode=c.coursecode
on c.classcode=b.classcode
on b.traincode=a.traincode
where a.name = R_Code;
return (R_Name);
exception
when NO_DATA_FOUND then
dbms_output.put_line('没有该讲师');
return (null);
when others then
dbms_output.put_line('发生其他错误');
return (null);
end;
那两个报错是什么错误?
Boatboy1年前1
qb707 共回答了16个问题 | 采纳率93.8%
第一个错误是:你前边选了三个东西,只插入到了一个变量里,这个地方用游标比较好
而且你这个应该用存储过程比较好,用函数的话有点费劲
oracle 谓词 谓语是什么?
oracle 谓词 谓语是什么?
比如哪些是谓词,什么是谓语.
涉外1年前1
LOVELYaROYE 共回答了21个问题 | 采纳率95.2%
谓词是指那些GROUP BY、ON、JOIN、ORDER BY这些等等的,这些东西你还是看看ORACLE的入门书籍,应该可以帮到你.
请问 oracle 系统 的英文部分怎么读?是以单词读还是以分开的字母读呢?
冰雪蓝1年前1
speedliu44549 共回答了21个问题 | 采纳率95.2%
oracle[ˈɔ:rəkəl,ˈɔr-,ˈɒrəkl
单词读
在oracle中怎么判断一个日期是否在一定时间范围内
cengjingw1年前1
souyi 共回答了12个问题 | 采纳率91.7%
这个属于oracle时间函数的用法
在oracle里,日期格式是一种特殊的东西
这里有一个日期转换函数
select to_char(日期,'yyyy-mm-dd hh24:mi:ss') from tablename;
这里的to_char就是将日期型转换成字符型的一个函数,转换成的格式就是
2010-08-23 17:51:20
当然你可以将这个日期转换成其他,如:
select to_char(日期,'yyyy-mm-dd') from tablename;
查出来的结果2010-08-23
所以你要根据这个日期来查东西就可以这么用
select * from tablename where to_char(日期,'yyyymmdd')between '20100801' and '20100823'
这个就是查日期8月1日到8月23日的数据
select * from tablename where to_char(日期,'yyyymmdd') = '20100801'
这个就是查8月1日的数据
其他不懂的你再问吧
-------补充------
你把你写的东西粘贴一下,也好帮你分析啊
你后边的" + model.Csrq + "参数传进来的是什么东西?
---------补充2-------
'yyyy-mm-dd 24hi:mi:ss'
这个地方错了,应改成
'yyyy-mm-dd hh24:mi:ss'
不是24hi
Oracle中,写存储过程,如何比较两条记录是否相同,两条记录分别来自两张表,表结构相同,有没有好的方法。(不要告诉我把
Oracle中,写存储过程,如何比较两条记录是否相同,两条记录分别来自两张表,表结构相同,有没有好的方法。(不要告诉我把两张表的所有字段值一一列出来比较,这个我会,但不想用)
roses11年前1
星梦缘1023 共回答了15个问题 | 采纳率93.3%
利用minus语法。
v_count number;
select count(*) into v_count from(
select * from tbl1 where ***
minus
select * from tbl2 where ****
)
if v_count=0 then
相同
else
不相同
end if;
oracle汉字字母数字混合怎么排序,按汉字的首字母排;例如汉字白应在字母c的前面,数字在最前面
涂鸦女孩1年前1
zfg1999 共回答了17个问题 | 采纳率88.2%
汉字拼音排序
select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
oracle 我想使用group by 汇总一下资料,同时需要让分类的大类出现一次,详细见补充.
oracle 我想使用group by 汇总一下资料,同时需要让分类的大类出现一次,详细见补充.
如 class name 我想要的是:class name
一班 小明 一班 小明
一班 小刚 小刚
二班 小李 二班 小李
二班 小五 小五
没分了,不过感谢是大把的!
吉儿最美21年前1
xinsi74 共回答了18个问题 | 采纳率88.9%
SELECT
CASE WHEN
ROW_NUMBER() OVER (PARTITION BY class ORDER BY name) = 1 THEN class
ELSE ''
END AS class,
name
FROM