select * from tbname t1 where t1.rank = '2' and t1.del_flag='F' and t1.mail_type1='局长信箱' and t1.rowid = (select min(t2.rowid) from tbname t2 where t1.name = t2.name)
解决方案 »
- 很菜的问题
- 如何直接用SQL语句实现这样的功能?
- WHERE条件字段顺序和索引有关嘛
- 游标问题
- 怎样在SQL语句中把字段值中的回车字符或其他特殊字符过滤掉?
- 如何把日期转换成这样的串:MM/DD/YYYY HH:MI:SS AM/PM eg. 12/14/2005 12:50:54 AM
- 数据库的复制创建主复制节点時出錯
- 刚安装好9i,一进入就要输入用户名和口令,到底是些什么?!!!
- WEB接口:ORACLE,验证用户名和口令的。
- 想模拟ORA-00316错误。
- 新手的问题--如何使用FOR语句操作游标.(在线)
- 请问,oracle中如何实现一种日期格式到另一种日期格式的转变,比如说把'yyyy-mm-dd hh24:mi:ss'格式的日期简化为'yyyy-mm-dd'。
ROWID是每一条数据在数据库中的唯一的物理地址,可以作为每个表的字段查询出来。
select * from tbname t1 where t1.rank = '2' and t1.del_flag='F' and t1.mail_type1='局长信箱' and t1.rowid IN (select ROWID from tbname GROUP BY NAME)这种方法也可以。
ROWID是每一条数据在数据库中的唯一的物理地址,可以作为每个表的字段查询出来。
---ORA-00979: 不是 GROUP BY 表达式
rowid是伪列,行的物理地址我的4个条件都满足阿
select * from tbname t1 where t1.rank = '2' and t1.del_flag='F' and t1.mail_type1 like '%局长信箱%' and t1.rowid = (select min(t2.rowid) from tbname t2 where t1.name = t2.name)
'局长信箱'=(select mail_type1 from tbname t3 where t1.parent = t3.rank)
这是相关子查询,会一行一行的进行
还有你说的那个“parent(上级):指定此数据的上级信箱的ID“中的“信箱的ID“是什么意思?
信箱哪有什么ID?
你根据你自己的意思改一下吧
where t1.rank = '2'
and t1.del_flag='F'
and parent =
(
select rank from tbname
where mail_type1 = '局长信箱'
and rownum=1
)
where t1.rank = '2'
and t1.del_flag='F'
and t1.mail_type1='局长信箱'
and t1.Name in ( select Distinct name from tbname )
select * from tbname t1
where t1.rank = '2'
and t1.del_flag='F'
and t1.mail_type1='局长信箱'
and t1.Name in ( select Distinct name from tbname )
========================================================
这种方法不行。
select * from tbname t1 where t1.rank = '2' and t1.del_flag='F' and t1.mail_type1='局长信箱' and t1.name not in (select name from tbname group by
name having count(*)>1)
刚才后面少一个括号;
3、mail_type1等与'局长信箱';这不是鬼打架么?
----------------------------------------------------------------
sql如下:select *
from tbname t1
where t1.rank = '2'
and t1.del_flag='F'
and '局长信箱' in (select t2.mail_type1
from tbname t2
start with t2.type_info_id=t1.type_info_id
connect by t2.type_info_id=prior t2.parent)
and t1.rowid = (select min(t3.rowid) from tbname t3 where t1.name = t3.name)