oracle数据库查询

oracle数据库查询,第1张

首先用分析函数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_idx

from 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数据库中查询某个值在哪个表中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9688807.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存