10 回答

TA貢獻1816條經(jīng)驗 獲得超6個贊
select * From [DBData].[dbo].[tb_Test] where Time=(select MAX(Time) from [DBData].[dbo].[tb_Test] where Name='ZhangSan')
?

TA貢獻1815條經(jīng)驗 獲得超13個贊
select max(nvl(時間,'0')),姓名 from table group by 姓名
這個是oracle的寫法,時間為空用nvl函數(shù)指定默認值為'0',然后再取最大的時間,我的思路。

TA貢獻2080條經(jīng)驗 獲得超4個贊
SELECT
* , row_number() over(partition by 姓名 order by 時間 desc ) as rn
FROM
表名 ?where rn=1

TA貢獻2012條經(jīng)驗 獲得超12個贊
?delete a from T_worker a where
?exists
?(
?? ?select 1 from T_worker where name = a.name and jobNo != a.jobNo and (time > a.time or a.timer is null)
?)
但是這樣寫還是存在一個問題,比如有兩條記錄姓名相同時間都是null,都會被刪掉。
若工號不為空,且時間大的工號也大,則可改為姓名相同保留工號最大的記錄,相應(yīng)的語句為:
?delete a from T_worker a where
?exists
?(
?? ?select 1 from T_worker where name = a.name and jobNo > a.jobNo
?)
- 10 回答
- 0 關(guān)注
- 662 瀏覽
添加回答
舉報