结果竟然是这样的xh          xh          xh          xh          
----------- ----------- ----------- ----------- 
1           1           1           1
2           2           2           2
3           3           3           3
4           4           4           4
5           5           5           5
6           6           6           6
7           7           7           7
8           8           8           8
NULL        9           9           9
NULL        NULL        11          NULL
NULL        NULL        10          10

解决方案 »

  1.   

    最后一个表#d的最后一个数字10怎么会跑到一个NULL的后面去?第三个表#c怎么不按数值大小进行排序???
      

  2.   

    在加几个记录。
    得到结果:
    1 1 1 1
    2 2 2 2
    3 3 3 3
    4 4 4 4
    5 5 5 5
    6 6 6 6
    7 7 7 7
    8 8 8 8
    NULL 9 9 9
    NULL NULL 14 14
    NULL NULL 13 13
    NULL NULL 12 12
    NULL NULL 11 NULL
      

  3.   

    又没有规律了:
    1 1 1 1
    2 2 2 2
    3 3 3 3
    4 4 4 4
    5 5 5 5
    6 6 6 6
    7 7 7 7
    8 8 8 8
    NULL 9 9 9
    NULL 19 NULL NULL
    NULL NULL 14 14
    NULL NULL 13 13
    NULL NULL 12 12
    NULL NULL 11 11
    NULL NULL 18 18
    NULL NULL NULL 19
      

  4.   

    真是奇怪哦?相邻的两个表join,如果碰到了NULL字段,那么就好像是乱序的,没有按照顺序来得。
      

  5.   

    SQL Server并没有承诺说,你每次查询的结果都要帮你排序。
      

  6.   

    select * from #a full  join #b on #a.xh=#b.xh full join #c on #B.xh=#c.xh full join #d on #c.xh=#d.xh有没有尝试把上面的sql 语句 join 的顺序颠倒着看看会有什么新的发现。
    比如说:
    select * from #d full  join #b on #d.xh=#b.xh full join #c on #B.xh=#c.xh full join #a on #c.xh=#a.xh