select case id0 when 1 then aa else '' end as aa,bb from (select id0=row_number()over(partition by aa order by getdate(),* from tb)t
create table #temp(aa nvarchar(10), id int, bb nvarchar(10)) insert #temp select N'女人', '1', N'30岁' union all select N'女人', '2', N'25岁' union all select N'女人', '3', N'12岁' union all select N'男人', '1', N'35岁' union all select N'男人', '2', N'45岁' union all select N'男人', '3', N'15岁' go --SQL: select aa = case when id = 1 then aa else '' end, id = '', bb from #temp /* aa id bb 女人 30岁 25岁 12岁 男人 35岁 45岁 15岁 */
--SQL: DECLARE @temp nvarchar(10), @IsChange int select @temp = N'', @IsChange = 0 update #temp set aa = case @IsChange when 1 then aa else '' end, @IsChange = case when @temp <> aa then 1 else 0 end, @temp = aa go select aa, bb from #temp /* aa bb 女人 30岁 25岁 12岁 男人 35岁 45岁 15岁 */[/code]
create table #temp(aa nvarchar(10), id int, bb nvarchar(10)) insert #temp select N'女人', '1', N'30岁' union all select N'女人', '2', N'25岁' union all select N'女人', '3', N'12岁' union all select N'男人', '1', N'35岁' union all select N'男人', '2', N'45岁' union all select N'男人', '3', N'15岁' go --SQL: DECLARE @temp nvarchar(10), @IsChange int select @temp = N'', @IsChange = 0 update #temp set aa = case @IsChange when 1 then aa else '' end, @IsChange = case when @temp <> aa then 1 else 0 end, @temp = aa go select aa, bb from #temp /* aa bb 女人 30岁 25岁 12岁 男人 35岁 45岁 15岁 */
select aaa=case when a.id=b.minid then a.aa else '' end,a.bb from #tmp a left join (select aa,minID=min(id) from #tmp group by aa) b on a.aa=b.aa order by a.aa,a.id
case id0 when 1 then aa else '' end as aa,bb
from
(select id0=row_number()over(partition by aa order by getdate(),* from tb)t
insert #temp
select N'女人', '1', N'30岁' union all
select N'女人', '2', N'25岁' union all
select N'女人', '3', N'12岁' union all
select N'男人', '1', N'35岁' union all
select N'男人', '2', N'45岁' union all
select N'男人', '3', N'15岁'
go
--SQL:
select
aa = case when id = 1 then aa else '' end,
id = '',
bb
from #temp
/*
aa id bb
女人 30岁
25岁
12岁
男人 35岁
45岁
15岁
*/
DECLARE @temp nvarchar(10), @IsChange int
select @temp = N'', @IsChange = 0
update #temp
set aa = case @IsChange when 1 then aa else '' end,
@IsChange = case when @temp <> aa then 1 else 0 end,
@temp = aa
go
select aa, bb from #temp
/*
aa bb
女人 30岁
25岁
12岁
男人 35岁
45岁
15岁
*/[/code]
insert #temp
select N'女人', '1', N'30岁' union all
select N'女人', '2', N'25岁' union all
select N'女人', '3', N'12岁' union all
select N'男人', '1', N'35岁' union all
select N'男人', '2', N'45岁' union all
select N'男人', '3', N'15岁'
go
--SQL:
DECLARE @temp nvarchar(10), @IsChange int
select @temp = N'', @IsChange = 0
update #temp
set aa = case @IsChange when 1 then aa else '' end,
@IsChange = case when @temp <> aa then 1 else 0 end,
@temp = aa
go
select aa, bb from #temp
/*
aa bb
女人 30岁
25岁
12岁
男人 35岁
45岁
15岁
*/
from #tmp a
left join (select aa,minID=min(id) from #tmp group by aa) b on a.aa=b.aa
order by a.aa,a.id