首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于这段SQL是怎么执行的?多谢(主要是判断语句)

2012-02-22 
关于这段SQL是如何执行的?谢谢(主要是判断语句)上次看到别人写得这个,无奈水平低下,看了半天运行了硬是没

关于这段SQL是如何执行的?谢谢(主要是判断语句)
上次看到别人写得这个,无奈水平低下,看了半天运行了硬是没搞懂她的逻辑.
CREATE   TABLE   TB(id   INT,dt   INT)
INSERT   TB
SELECT   1,2
UNION   SELECT   2,19
UNION   SELECT   3,19
UNION   SELECT   4,11
UNION   SELECT   5,11
UNION   SELECT   6,12
--drop   table   tb

SELECT   ID,CNT=ISNULL((SELECT   COUNT(A.DT)   FROM   (SELECT   ID=MAX(ID),DT=MAX(DT)   FROM   TB   GROUP   BY   dt)   A   WHERE   T.ID> A.ID   AND   T.DT <> A.DT),0)+1
FROM   TB   T

执行结果是
1     1
2     2
3     2
4     3
5     3
6     4

请问它是如何运行的呢?我尤其没搞懂T.ID> A.ID   AND   T.DT <> A.DT这个判断如何执行呢?   谢谢!
最好能举例说明

[解决办法]
我觉得关键是要知道每一个select的含义,你把每一个子句都执行一下看看就明白了
以下是表A的结果:
ID DT
12
511
612
319

热点排行