10:15sql
數據庫中,一個agentcode可能對應着多個enddate,這兒須要取出排序後最頂上一個。數據庫
個人想法是將全部enddate用code
select enddate from t_agreement where agentcode = "00000001";
來取出來存放到一個List中,而後試用String的replace方法將其中的"/"字符去掉。再用快排將其進行排序,以後取第一個,加上"/"。完成。排序
龍哥的說法是,你直接在sql取的時候就排好不就行了啊。。。table
select max(enddate) from t_agreement where agentcode = "000000001";
就這樣。class
仍是對sql理解不夠深入。。date
14:50List
t_orclselect
id | type |
11 | a |
3 | b |
2 | c |
6 | d |
5 | e |
8 | f |
上述表中按 id 排序後取出第三行元素。
方法
首先咱們要作的是按 id 排序。
select * from t_orcl order by id;
接下來,爲了保證rownum順序是正確的,咱們只能嵌套一層select:
select id, type, rownum rn from (select * from t_orcl order by id);
這樣咱們獲得了這樣一張表:
id | type | rn |
2 | c | 1 |
3 | b | 2 |
5 | e | 3 |
6 | d | 4 |
8 | f | 5 |
11 | a | 6 |
而後呢咱們就能夠取第三行了:
select * from (select id, type, rownum rn from (select * from t_orcl order by id)) t where t.rn = 3;
id | type | rn |
5 | e | 3 |
就是這樣,簡單明瞭。
固然了,還有另一種方法,吶,或許好用。
select * from (select id, type, rownum from (select * from t_orcl order by id) where rownum < 4) having id = max(id);
對了當你用這種逗比語句受到嘲諷的時候請不要甩鍋給我謝謝。