表数据
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
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
-- 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 行)
*/?