第一句是从11中取一条记录就和11中的所有记录比一次来重复的记录,ID为2和5的记录。 第二句是先运行:select min(m.rowid) from ll m,ll n where m.name=n.name,因为你自关联,它出来的始终只有一条记录,即11表中最小的ROWID,这样你的整条语句就是取11表中在于这个ROWID的所的记录,ID为2、3、4、5的记录
第一句相当于 select a.* from ll a,(select min(rowid) no,name from ll group by name) b where a.rowid>b.no and a.name=b.name;第二句相当于 select * from ll where rowid>(select min(rowid) from ll);至于细节的问题,自己慢慢领会,应该能想通的
to soniczck(城市农作物) ( ) 谢谢了先! 为什么会出现这种情况啊?为什么第一句是从ll中取一条记录就和ll中的所有记录比啊? 第二句的解释还是不太清楚,为什么第二句是自关联,而第一句不是呐?能给点详细的资料吗?谢谢了
你问为什么?因为你那两句写的就是这个逻辑,你说为什么阿?呵呵。 在解释就是第二句中select min(m.rowid) from ll m,ll n where m.name=n.name中的m,n相当于局部变量。而第一句select * from ll where ll.rowid>(select min(rowid) from ll m where ll.name=m.name);中的11相当于全局变量,m相当于局部变量。不知这样你能否明白?当然这个比喻也不是很恰当
1:select * from ll where ll.rowid>(select min(rowid) from ll m where ll.name=m.name); 2:select * from ll where ll.rowid>(select min(m.rowid) from ll m,ll n where m.name=n.name) 第一条语句 是用的相关查询。作用是查出相同的name值的那些rowid不是最小的那些 第二条语句,自连接其实没用处,作用是查出ll表rowid不是最小的那些记录
select id,t.name from l1 t, (select count(*) num ,name from l1 group by name) a where a.name = t.name and a.num > 1
第一句则是查询在表11中查询name相同记录中大于最小id的记录。
不知清楚没有
只好借这个地方了..问下这个问题
关于修改临时表数据结构的问题向一张临时表中添加一个新字段;
提示ORA-14450:试图访问已经在使用的事务处理临时表,
如果在不重启ORACLE的前提下添加该字段;
可以确保可能访问到该表的修改,删除等等操作都已经退出
第二句是先运行:select min(m.rowid) from ll m,ll n where m.name=n.name,因为你自关联,它出来的始终只有一条记录,即11表中最小的ROWID,这样你的整条语句就是取11表中在于这个ROWID的所的记录,ID为2、3、4、5的记录
select a.* from ll a,(select min(rowid) no,name from ll group by name) b
where a.rowid>b.no and a.name=b.name;第二句相当于
select * from ll where rowid>(select min(rowid) from ll);至于细节的问题,自己慢慢领会,应该能想通的
谢谢了先!
为什么会出现这种情况啊?为什么第一句是从ll中取一条记录就和ll中的所有记录比啊?
第二句的解释还是不太清楚,为什么第二句是自关联,而第一句不是呐?能给点详细的资料吗?谢谢了
在解释就是第二句中select min(m.rowid) from ll m,ll n where m.name=n.name中的m,n相当于局部变量。而第一句select * from ll where ll.rowid>(select min(rowid) from ll m where ll.name=m.name);中的11相当于全局变量,m相当于局部变量。不知这样你能否明白?当然这个比喻也不是很恰当
sql中的()相当于程序中的{}。除sql函数外.
2:select * from ll where ll.rowid>(select min(m.rowid) from ll m,ll n where m.name=n.name)
第一条语句 是用的相关查询。作用是查出相同的name值的那些rowid不是最小的那些
第二条语句,自连接其实没用处,作用是查出ll表rowid不是最小的那些记录
from l1 t,
(select count(*) num ,name
from l1
group by name) a
where a.name = t.name
and a.num > 1