表名:TESTCOL1 COL2
A01 1234
A02 1234
A03 1234
B01 1234
B02 1234
B03 1234
B04 1234
说明:因为COL1列的前三行数据的值的第一位都相同,即都是 A 开头,并且这三行的COL2列的值都相同,都是1234,所以需要将第二行和第三行的COL2列的数据处理为“同上”;同样4-7行的数据也按此处理,处理结果为:
COL1 COL2
A01 第1:1234
A02 第2:同上
A03 第3:同上
B01 第1:1234
B02 第2:同上
B03 第3:同上
B04 第4:同上最好能用最简单,易于理解的办法处理,谢谢!!
A01 1234
A02 1234
A03 1234
B01 1234
B02 1234
B03 1234
B04 1234
说明:因为COL1列的前三行数据的值的第一位都相同,即都是 A 开头,并且这三行的COL2列的值都相同,都是1234,所以需要将第二行和第三行的COL2列的数据处理为“同上”;同样4-7行的数据也按此处理,处理结果为:
COL1 COL2
A01 第1:1234
A02 第2:同上
A03 第3:同上
B01 第1:1234
B02 第2:同上
B03 第3:同上
B04 第4:同上最好能用最简单,易于理解的办法处理,谢谢!!
(
col1 varchar(3),
col2 varchar(4)
)
insert into @test
select 'A01','1234' union all
select 'A02','1234' union all
select 'A03','1234' union all
select 'B01','1234' union all
select 'B02','1234' union all
select 'B03','1234' union all
select 'B04','1234'
select Col1,Col2='第'+cast(convert(int,right(col1,2))as varchar)+':'+case when col2=(select col2 from @test where cast(right(col1,2)as int)=cast(right(a.col1,2)as int)-1 and left(a.col1,1)=left(col1,1)) then '同上' else col2 end
from @test a
/*
Col1 Col2
---- -------------------------------------
A01 第1:1234
A02 第2:同上
A03 第3:同上
B01 第1:1234
B02 第2:同上
B03 第3:同上
B04 第4:同上
*/
(COL1 Char(3),
COL2 Nvarchar(10))
Insert TEST Select 'A01', '1234'
Union All Select'A02', '1234'
Union All Select'A03', '1234'
Union All Select'B01', '1234'
Union All Select'B02', '1234'
Union All Select'B03', '1234'
Union All Select'B04', '1234'
GO
Select
COL1,
(Case When Not Exists(Select 1 From TEST Where Left(COL1,1)=Left(A.COL1,1) And COL2<>A.COL2)
Then Case When Not Exists(Select 1 From TEST Where Left(COL1,1)=Left(A.COL1,1) And COL1<A.COL1) Then COL2
Else N'同上' End
Else COL2 End) As COL2
From TEST A
GO
Drop Table TEST
GO
/*
COL1 COL2
A01 1234
A02 同上
A03 同上
B01 1234
B02 同上
B03 同上
B04 同上
*/
(
COL1 varchar(3),
COL2 Nvarchar(10)
)
go
insert into a values ('A01',1234)
insert into a values ('A02',1234)
insert into a values ('A03',1234)
insert into a values ('B01',1234)
insert into a values ('B02',1234)
insert into a values ('B03',1234)
insert into a values ('B04',1234)
select COL1,COL2=case
when COL1 like'A__' and cast(convert(int,right(COL1,2))as varchar)=1 then '第'+cast(convert(int,right(COL1,2))as varchar)+':'+ COL2
when COL1 like'B__'and cast(convert(int,right(COL1,2))as varchar)=1 then '第'+cast(convert(int,right(COL1,2))as varchar)+':'+COL2
else
'第'+cast(convert(int,right(COL1,2))as varchar)+'同上'
end
from a