oracle查询问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle查询问题相关的知识,希望对你有一定的参考价值。

oracle中,我又一个查询select use_nam from c_use;
该查询有多个结果:
USE_NAM
1 郭蓉
2 甄岩投诉
3 董晓娜
4 不可用
5 马春丽
6 吕燕燕
7 张翠丽
8 平剑超
9 张雨
10 任博
11 陈翠玲
12 胡梅
13 刘魁

我怎么将其查询成只显示一条结果,显示格式为:
USE_NAM
1 郭蓉,甄岩投诉,董晓娜,不可用,马春丽,吕燕燕,张翠丽.....

参考技术A 一楼的第二个回答是正确的。
错误在这句话v_sql:='select * from type where btypeid=BT1';
应该改成v_sql:='select * from type where btypeid=''BT1''';
其中''不是双引号,而是两个单引号。
其中,连续的两个单引号,第一个是转义字符,第二个,是真正的单引号。后边也一样。
因为这种引在字符串里面的单引号很特殊,如果你只是用一个,就会被当成了外围字符串的符号,和前边的配对了,所以使用一个单引号转义,而第二个和第一个配合在一起,表示是一个单引号。这样才能是你的字符串成为 select * from type where btypeid='BT1'这样的形式。
参考技术B 假设第一列为ID;
select id,ltrim(sys_connect_by_path(USE_NAM,','),',') as USE_NAM from (select id,USE_NAM,count(*) over(partition by id) cnt from c_use) where level=cnt connect by prior id=id and prior ascii(USE_NAM)<ascii(USE_NAM)
参考技术C 一楼正解~或者建个循环也行 参考技术D 一楼正解 第5个回答  2011-08-25 SELECT rowid,wmsys.wm_concat(use_nam) FROM c_use;

oracle数据查询时如何定位问题数据

在oracle数据库中执行一个查询语句,数据查询到一部分时报错,SQL本身没问题,是由于表中有异常数据导致的,只要定位到这条异常数据,将其数据修正,SQL就能正确执行,但如何快速定位到异常数据?

参考技术A 可以根据where条件去找的
什么时候开始错误的
找最后正常天之后的数据出来对
范围慢慢缩小,你这种情况,肯定是业务数据保存的时候没有SQL过滤
参考技术B 这样的问题回答起来比较难。

对待有问题的数据

首先判断会出现什么问题。

针对问题,通过where 条件限定,查询到问题数据追问

我一直也是这么做的,但以为有简便的方法,因为oracle在遇到问题数据时才报错,说明它已经找到这条数据了,oracle本身没有一个将问题数据抛出来的机制?

追答

数据库 有验证机制,但是不能够解决全部的问题

所以需要人为的去排错

本回答被提问者采纳

以上是关于oracle查询问题的主要内容,如果未能解决你的问题,请参考以下文章

(oracle)子查询和关联查询效率问题

oracle查询问题

oracle 分页查询重复问题

oracle 查询

oracle如何查询当前用户都有哪些序列?

Oracle查询速度优化问题