select * from ST_MENU menu where menu.ID in (3,3,4)这条语句按理说应该三行数据啊,为什么只有两行结果?重复的自动去掉了?
解决方案 »
- sql 空值问题
- 有关分析函数的问题
- 哪位大佬有oracle9.dll,麻烦发给偶一个啊
- oracle怎么备份数据库,恢复到其它计算机上,有没详细点介绍
- sql server触发器转换为Oracle,谢谢!
- oracle9.2.0.8 物化视图 undefined
- 怎么解决以下问题.删用户时报以下错.
- C/S模式下大数据量查询的效率问题
- 如何能够实现一个SQL语句(select)定时每5分钟执行一次,并将结果累计输出
- 初学者:最近,做一个产品信息管理系统,asp+oracle,每个产品的参数信息有50多个,如何建表,1:把这些信息都放在一张表中2:以编号为主
- oracle多个表要用自动增长的标识列,需要建多个sequence吗?
- PLSQL Developer 导入oracle数据问题
跟这个是一样的
要3行是吧?那你必须得union:
select * from ST_MENU menu where menu.ID = 3
union
select * from ST_MENU menu where menu.ID =3
union
select * from ST_MENU menu where menu.ID = 4
应该是UNION ALL。UNION也会去掉重复行。
select * from ST_MENU menu where menu.ID in (3,3,4)
括号里的值是子查询 查询出来的
看你的数据,ID=3的有几条?
如果你ID=3的有多条,而该语句只返回一条,那说明有问题。
如果你只有一条,你让ORACLE给你伪造一条?
个么使用UNION ALL
select * from ST_MENU menu where menu.ID in (3,3,4)在sql*plus里可以查询出结果
为什么同样一条语句我在程序里面就查询不出来了呢
Java代码:
Statement stmt = getSession().connection().createStatement();
ResultSet rs = stmt.executeQuery("select * from ST_MENU");
if(rs != null)
while(rs.next()){
System.out.println(rs.getLong(0));
}
rs.next()返回false
这个是什么问题啊
---------- -------------------------------- -------- ----------
帅哥描述
----------------------------------------------------------------
3 zjwilove4 男 18
标准帅哥 4 crazylaa 纯爷们 17
贼帅!!!
SQL> select * from 帅哥 where 帅哥ID in (3,3,4); 帅哥ID 帅哥姓名 帅哥性别 帅哥年龄
---------- -------------------------------- -------- ----------
帅哥描述
----------------------------------------------------------------
3 zjwilove4 男 18
标准帅哥 4 crazylaa 纯爷们 17
贼帅!!!
SQL> SELECT * from 帅哥 WHERE 帅哥ID=3
2 UNION ALL
3 SELECT * from 帅哥 WHERE 帅哥ID=3
4 UNION ALL
5 SELECT * from 帅哥 WHERE 帅哥ID=4; 帅哥ID 帅哥姓名 帅哥性别 帅哥年龄
---------- -------------------------------- -------- ----------
帅哥描述
----------------------------------------------------------------
3 zjwilove4 男 18
标准帅哥 3 zjwilove4 男 18
标准帅哥 4 crazylaa 纯爷们 17
贼帅!!!
SQL>
能执行到rs!=null且没有抛异常,说明你的连接取到了,表也存在,只不过是没有数据,那么我只能说是你sqlplus数据没有提交。