189 8069 5689

oracle怎么查某些列 oracle查前十条

在oracle中,怎么查询有关列的数据?

以两表为例。

专业网站制作公司,专做排名好的好网站,排在同行前面,为您带来客户和效益!成都创新互联公司为您提供品质好成都网站建设,五站合一网站设计制作,服务好的网站设计公司,负责任的成都网站制作公司!

需要用关联查询。

如有以下两张表,其中两表的deptno是关联字段。

现要求查出每个人对应的dname,可用如下语句:

select a.ename,b.dname from emp a,dept b where a.deptno=b.deptno;

查询结果:

如何用oracle动态查询一张表里面的某些列?

在PLSQL中使用EXECUTE IMMEDIATE语句处理动态SQL语句。

语法如下:

EXECUTE IMMEDIATE dynamic_string

[INTO {define_variable[, define_variable]... | record}]

[USING [IN | OUT | IN OUT] bind_argument

[, [IN | OUT | IN OUT] bind_argument]...]

[{RETURNING | RETURN} INTO bind_argument[, bind_argument]...];

dynamic_string是代表一条SQL语句或一个PL/SQL块的字符串表达式,

define_variable是用于存放被选出的字段值的变量,

record是用户定义或%ROWTYPE类型的记录,用来存放被选出的行记录。

输入bind_argument参数是一个表达式,它的值将被传入(IN模式)或传出(OUT模式)或先传入再传出(IN OUT模式)到动态SQL语句或是PL/SQL块中。一个输出bind_argument参数就是一个能保存动态SQL返回值的变量。

除了多行查询外,动态字符串可以包含任何SQL语句(不含终结符)或PL/SQL块(含终结符)。

字符串中可以包括用于参数绑定的占位符。

但是,不可以使用绑定参数为动态SQL传递模式对象。

在用于单行查询时,INTO子句要指明用于存放检索值的变量或记录。

对于查询检索出来的每一个值,INTO子句中都必须有一个与之对应的、类型兼容的变量或字段。

在用于DML操作时,RETURNING INTO子句要指明用于存放返回值的变量或记录。

对于DML语句返回的每一个值,INTO子句中都必须有一个与之对应的、类型兼容的变量或字段。

我们可以把所有的绑定参数放到USING子句中。默认的参数模式是IN。

对于含有RETURNING子句的DML语句来说,我们可以把OUT参数放到RETURNING INTO之后,并且不用指定它们的参数模式,因为默认就是OUT。

如果我们既使用了USING又使用RETURNING INTO,那么,USING子句中就只能包含IN模式的参数了。

运行时,动态字符串中的绑定参数会替换相对应的占位符。所以,每个占位符必须与USING子句和/或RETURNING INTO子句中的一个绑定参数对应。我们可以使用数字、字符和字符串作为绑定参数,但不能使用布尔类型(TRUE,FALSE和NULL)。要把空值传递给动态字符串,我们就必须使用工作区。

动态SQL支持所有的SQL类型。所以,定义变量和绑定变量都可以是集合、LOB,对象类型实例和引用。

作为一项规则,动态SQL是不支持PL/SQL特有的类型的。这样,它就不能使用布尔型或索引表。

我们可以重复为绑定变量指定新值执行动态SQL语句。但是,每次都会消耗很多资源,因为EXECUTE IMMEDIATE在每次执行之前都需要对动态字符串进行预处理。

oracle怎样查出表中重复列的数据?

1、查出表中重复列的数据:

select a,count(*) from table group by a having count(*)1

2、查重复次数最多的列:

select a,num from (

select a,count(*)  num from table group by a having count(*)1

)

order by num desc

此外,还有

1、查询一个表中所有字段都相同的记录

比如现在有一人员表   (表名:peosons)

若想将姓名、编号、住址这三个字段完全相同的记录查询出来:

select  p1.*  from  persons  p1,persons  p2  where  p1.name=p2.name  and  p1.id =  p2.id  and  p1.address=p2.address                  group by p1.name,p1.id,p1.address  having count(*) 1;

或者:

select  p1.*  from  persons  p1,persons  p2  where  p1.name=p2.name

and  p1.id=p2.id  and  p1.address=p2.address  and  p1.rowidp2.rowid;

或者:(下面这条语句执行效率更高)

select  *  from (select  p.*,row_number()  over  (partition  by  name,

id,address  order  by  name)  rn  from  persons  p)  where  rn1;

2、 查询一个表中某字段相同的记录

语法:select  p1.*  from  表名 p1,(select  字段  from  表名 group  by  字段  having  count(*)1)  p2  where  p1.字段=p2.字段;

select  p1.*  from  persons  p1,(select  address  from  persons  group  by  address  having  count(*)1)  p2

where  p1.address=p2.address;

3、查询一个表中某字段相同的记录,其它字段不用查询出来

select  name,count(*)  from  persons group  by  name  having  count(*) 1;

oracle怎么查询表里某一列

无法排除某一列,只能查询中写出其他列,而不写不查询的这列,如:

Oracle 查询所有列名

1、Oracle数据库:

select  *  from ‘数据库的名字’  where Table_Name='你要查询表的名字';

2、mysql查询表所有列名,并用逗号分隔:

SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",")

FROM information_schema.COLUMNS

WHERE TABLE_SCHEMA = '数据库的名字' AND TABLE_NAME = '你要查询表的名字'

扩展资料:

Oracle数据库其他查询语句:

1、查询所有表名:

select t.table_name from‘数据库的名字’;

2、查询所有字段名:

select t.column_name from ‘数据库的名字’;

3、查询指定表的所有字段名:

select t.column_name from ‘数据库的名字’ where t.table_name = '你要查询表的名字';

4、查询指定表的所有字段名和字段说明:

select t.column_name, t.column_name from‘数据库的名字’where t.table_name = '你要查询表的名字';


本文题目:oracle怎么查某些列 oracle查前十条
本文来源:http://jkwzsj.com/article/hgeich.html

其他资讯