表数据
     a              b
IN201001080044 NULL
IN201001080044 88054795
IN201001080044 88054794
IN201001080044 88055071
IN201001080044 NULL
IN201001080044 NULL
IN201001080044 NULL
IN201001080044 88054791
IN201001080044 21050470
IN201001080044 88054791
IN201001080044 88054797
IN201001080044 88055023
如何将上述查询结果变成如这样:
IN201001080044 NULL IN201001080044 88054795
IN201001080044 88054795
IN201001080044 88054794
IN201001080044 88055071
IN201001080044 NULL
IN201001080044 NULL
IN201001080044 NULL IN201001080044 88054791
IN201001080044 21050470
IN201001080044 88054791
IN201001080044 88054797
IN201001080044 88055023

解决方案 »

  1.   

    ----------------------------------------------------------------
    -- Author  :SQL77(只为思齐老)
    -- Date    :2010-01-19 12:22:38
    -- Version:
    --      Microsoft SQL Server  2000 - 8.00.194 (Intel X86) 
    -- Aug  6 2000 00:57:48 
    -- Copyright (c) 1988-2000 Microsoft Corporation
    -- Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 3)
    --
    ----------------------------------------------------------------
    --> 测试数据:#TB
    if object_id('tempdb.dbo.#TB') is not null drop table #TB
    go 
    create table #TB([A] varchar(14),[B] int)
    insert #TB
    select 'IN201001080044',null union all
    select 'IN201001080044',88054795 union all
    select 'IN201001080044',88054794 union all
    select 'IN201001080044',88055071 union all
    select 'IN201001080044',null union all
    select 'IN201001080044',null union all
    select 'IN201001080044',null union all
    select 'IN201001080044',88054791 union all
    select 'IN201001080044',21050470 union all
    select 'IN201001080044',88054791 union all
    select 'IN201001080044',88054797 union all
    select 'IN201001080044',88055023
    --------------开始查询--------------------------select IDD=IDENTITY(INT,1,1),* INTO #T from #TBSELECT 

    FROM 
    #T T LEFT JOIN #T T1 
    ON T1.IDD=T.IDD+1 
    AND T.B IS NULL AND T1.B IS NOT NULL----------------结果----------------------------
    /* 
    IDD         A              B           IDD         A              B           
    ----------- -------------- ----------- ----------- -------------- ----------- 
    1           IN201001080044 NULL        2           IN201001080044 88054795
    2           IN201001080044 88054795    NULL        NULL           NULL
    3           IN201001080044 88054794    NULL        NULL           NULL
    4           IN201001080044 88055071    NULL        NULL           NULL
    5           IN201001080044 NULL        NULL        NULL           NULL
    6           IN201001080044 NULL        NULL        NULL           NULL
    7           IN201001080044 NULL        8           IN201001080044 88054791
    8           IN201001080044 88054791    NULL        NULL           NULL
    9           IN201001080044 21050470    NULL        NULL           NULL
    10          IN201001080044 88054791    NULL        NULL           NULL
    11          IN201001080044 88054797    NULL        NULL           NULL
    12          IN201001080044 88055023    NULL        NULL           NULL(所影响的行数为 12 行)
    */?