首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一SQL 指令解决方法

2012-01-19 
求一SQL 指令有一表如下:createtabletab(col1char(10),col2char(10))inserttabselectA , a1unionallselect

求一SQL 指令
有一表如下   :
create   table   tab(col1   char(10),col2   char(10))
insert   tab
select   'A ', 'a1 '
union   all   select   'B ', 'a2 '
union   all   select   'B ', 'a3 '
union   all   select   'B ', 'a4 '
union   all   select   'C ', 'a5 '
union   all   select   'C ', 'a6 '
union   all   select   'D ', 'a7 '
想得到如下的结果:
-col1----col2------col3--
Aa1                 0001
Ba2                 0001
Ba3                 0002
Ba4                 0003
Ca5                 0001
Ca6                 0002
Da7                 0001


[解决办法]
create table tab(col1 char(10),col2 char(10))
insert tab
select 'A ', 'a1 '
union all select 'B ', 'a2 '
union all select 'B ', 'a3 '
union all select 'B ', 'a4 '
union all select 'C ', 'a5 '
union all select 'C ', 'a6 '
union all select 'D ', 'a7 '
GO
Select *, Right(10000 + (Select Count(col1) From tab Where col1 = A.col1 And col2 <= A.col2), 4) As col3 From tab A
GO
Drop Table tab
--Result
/*
Col1Col2Col3
A a1 0001
B a2 0001
B a3 0002
B a4 0003
C a5 0001
C a6 0002
D a7 0001
*/

热点排行