
首先用分析函数row_number() over (partition by group_fields order by order_by_fields)将数据按指定字段group_fileds进行分组并按指定字段order_by_fileds排序获得排序过的资料,然后取排序过的资料的 row_number值为1的记录,基本就可以实现你的需求了。
row_number over()函数的使用示例, 设表table1记录如下:
A B C
Sales Jack 2014/1/1
Saes Mike 2014/3/7
RD Wood 2014/2/3
RD Andrew 2013/10/21
这样查询,
select A, B, C, row_number() over(partition by A order by C) as row_idxfrom table1
就可以得到如下结果集:
A B C row_idx
Sales Jack 2014/1/1 1
Saes Mike 2014/3/7 2
RD Wood 2014/2/3 2
RD Andrew 2013/10/21 1
可以看到, row_idx是按A值相同的分组, 然后按C值从小到大编号的。
select from 仓库表
where member_int_ids like '%'+(select int_id from 用户表 where user_name='张三')+'%'
--子查询查询出张三的int_id;再去仓库表中查询管理哪些仓储
可以用select语句查询某个表中某字段是否存在某个值,如果有,可以查询改行的其他字段值。
没办法遍历所有表和字段知道某个值在哪里,即使写了语句,代价也太大了。
祝好运,望采纳。
with tmp(c_id,c_name,c_up) as
(
select 1,'四川省',0 from dual union all
select 2,'河北省',0 from dual union all
select 3,'河南省',0 from dual union all
select 4,'成都市',1 from dual union all
select 5,'绵阳市',1 from dual union all
select 6,'南充市',1 from dual union all
select 7,'双流县',4 from dual union all
select 8,'高新区',4 from dual)
select from tmp
where c_up=0
start with c_name='成都市'
connect by prior c_up=c_id
1、在数据库中创建相应的表。
如,文本文件内容为:
create table test
(id int,
name varchar2(10),
sex varchar2(10));
2、在电脑中某路径下编写ctrl文件,以c盘data目录为例,添加如下文本。如,被导入的文件名为loadtxt
load data
infile 'loadtxt' --被导入文件名
replace into table test
(id char terminated by ',',
name char terminated by ',',
sex char terminated by whitespace)
编写后,将文件保存成loadctrl
3、然后打开命令提示符,并进入到文本文件和ctrl文件所在目录。
4、输入以下语句,并执行。
sqlldr userid=用户名/密码@数据库实例名 control=loadctl log=loadlog
5、导入后,test表中数据如下:
select from test;
这里面没有比较详细的资料!
>
select t1serial_number
(select serial_number,in_station_time where group_name='A') t1,
(select serial_number,in_station_time where group_name='B') t2
where t1serial_number=t2serial_number
and abs(t2in_station_time-t1in_station_time)>5/1440
其实你字段描述太不详细了,先试试吧
以上就是关于oracle数据库查询全部的内容,包括:oracle数据库查询、oracle数据库查询问题、怎么在oracle数据库中查询某个值在哪个表中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)