求一SQL(for oracle)(100分)

  • 主题发起人 主题发起人 longerhe
  • 开始时间 开始时间
L

longerhe

Unregistered / Unconfirmed
GUEST, unregistred user!
table
sn update_time value
sn1 2008-07-01 v1
sn1 2008-07-01 v2
sn1 2008-07-02 v3
sn1 2008-07-02 v4
sn2 2008-07-02 v1
sn2 2008-07-02 v2
sn2 2008-07-03 v3
sn3 2008-07-02 v1
sn3 2008-07-02 v2
sn3 2008-07-03 v3
...
現在要查詢sn的第一筆資料(指定日期),注意不是指定日期的第一筆資料,
如查詢2008-07-02的第一筆資料
結果如下;
sn2 2008-07-02 v1
sn3 2008-07-02 v1
結果是一定可以查出來的,只是個速度的問題.table中的數據量非常龐大.
 
update_time字段键索引
 
skyccf,我沒有那麼白痴,該建甚麼索引我當然知道.
 
select * from table where value='v1' ???这样吗
如果 value 字段存得是版本号,你的意思是找出sn的第一个版本的记录吧
这个表结构可能少了个主键,如果主键为字段名为iid,那么sql可以这样写
select * from table where iid in (
select iid from table where value='v1'
) t
 
Value不是版本號,是多個測試項目的組合值.
 
我没灌水。。U P。。
 
select * from table where value='v1' and update_time=to_date('20080702','yyyymmdd')
 
v1,v2……是我随便写的,其实是一个无规则的一个长长的字符串。
 
多人接受答案了。
 
后退
顶部