--very very bad code
select distinct t.* from t_team a
cross apply
(select top 1 LTRIM(RTRIM(clinename)) as clinename,cteamcode from t_team
where LTRIM(RTRIM(a.clinename)) = LTRIM(RTRIM(clinename)) and dbgndate > GETDATE() order by LTRIM(RTRIM(clinename)) desc) as t order by t.clinename
[quote]
SQL Server 分析和编译时间:
CPU 时间 = 13 毫秒,占用时间 = 13 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
(835 行受影响)
表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 't_team'。扫描计数 297266,逻辑读取 24862537 次,物理读取 27 次,预读 3922 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
SQL Server 执行时间:
CPU 时间 = 654313 毫秒,占用时间 = 167921 毫秒。
[/quote]
====================================================================
--good code
select * from (
select cteamcode,clinename,ROW_NUMBER() over
(partition by clinename order by dbgndate) rownum from t_team where dbgndate > GETDATE()
)t
where t.rownum<2
order by 2,3
[quote]
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
(835 行受影响)
表 't_team'。扫描计数 1,逻辑读取 87 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
SQL Server 执行时间:
CPU 时间 = 31 毫秒,占用时间 = 80 毫秒。
[/quote]
虽然能得到相同的结果,但是过程是多么不同!!!
select COUNT(1) from t_team
--297261