当前位置: 代码迷 >> Sql Server >> 拆列 并分组加序号?该怎么处理
  详细解决方案

拆列 并分组加序号?该怎么处理

热度:62   发布时间:2016-04-27 14:46:58.0
拆列 并分组加序号?
刚刚发了帖子,现在还有个要求,拆列 并分组加序号?
spid F99 F37 F87 F64 F54 F90 F16 F71 F17 F05 F44 F78 F11 F15 F14 F57 F28 F98 F97 F69 F35
SPH00031148 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031183 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031169 5 10 5 5 5 5 3 5 5 3 5 5 5 3 10 2 5 2 2 3 5
SPH00031179 2 5 2 2 2 2 2 2 2 2 2 2 2 2 7 2 2 2 2 2 2
SPH00031180 3 10 5 2 2 5 2 5 2 2 2 5 5 3 10 5 2 2 2 2 4
SPH00031172 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031155 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031170 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031165 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00031164 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031163 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031166 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00031167 10 20 10 10 10 10 10 10 10 5 5 10 10 10 20 10 10 5 5 5 5
SPH00031145 2 5 2 2 2 2 2 2 0 0 0 2 2 2 5 2 2 0 2 2 2
SPH00031146 1 2 1 0 0 1 1 1 0 0 0 0 1 0 2 0 0 0 0 0 0
SPH00031153 3 10 5 2 2 5 2 5 2 2 2 5 5 3 10 5 2 2 2 2 4
SPH00031154 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00031177 2 5 2 2 2 2 2 2 2 2 2 2 2 2 7 2 2 2 2 2 2
SPH00031178 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00005106 2 5 2 2 2 2 2 2 2 2 2 2 2 2 7 2 2 2 2 2 2
SPH00005107 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00031147 2 5 2 0 0 2 0 1 0 0 0 2 2 2 5 2 2 0 0 0 1
SPH00031149 3 10 5 2 2 5 2 5 2 2 2 5 5 3 10 5 2 2 2 2 4
SPH00031150 3 10 5 2 2 5 2 5 2 2 2 5 5 3 10 5 2 2 2 2 4
SPH00031151 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031152 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00030845 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031160 3 10 5 2 2 5 2 5 2 2 2 5 5 3 10 5 2 2 2 2 4
SPH00031159 3 10 5 2 2 5 2 5 2 2 2 5 5 3 10 5 2 2 2 2 4
SPH00031182 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031157 2 5 5 2 2 5 2 2 2 2 2 2 3 2 10 2 2 2 2 2 2
SPH00031158 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00031156 10 20 10 5 5 5 5 5 5 5 5 5 5 10 20 5 5 5 5 5 5
SPH00031162 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00031171 5 10 10 3 3 5 3 5 10 3 3 10 5 3 18 5 5 3 3 3 5
SPH00031181 2 5 2 0 0 0 0 2 2 0 0 2 0 0 5 0 0 0 0 0 0
SPH00031175 2 5 2 2 2 2 2 2 2 2 2 2 2 2 7 2 2 2 2 2 2
SPH00031176 3 10 5 2 2 5 2 5 2 2 2 5 5 3 10 5 2 2 2 2 4
SPH00031186 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00031187 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00031188 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00031189 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3
SPH00031190 5 10 5 3 3 5 3 5 3 3 3 3 5 3 10 5 3 3 3 3 4
SPH00031191 5 10 10 3 3 5 3 5 5 3 3 5 5 3 10 5 5 3 3 3 3

拆成
拆成

fdbs spid shl xuhao
F99 SPH00031148 2 1
F99 SPH00031183 2 2
...接着

F37 SPH00031148 5 1
F37 SPH00031183 5 2
...
至结束




------解决方案--------------------
SQL code
declare @sql varchar(8000) set @sql=''select @sql=@sql+' select '''+name+''' as col1,spid as col2,'+name+' as col3 from sptable union all'from syscolumns where id=object_id('sptable') and name<>'spid'select @sql=left(@sql,len(@sql)-9)select @sql='select aa.*,row_number() over (partition by col1 order by (select 1)) as xuhao from ('[email protected]+' ) aa order by 1 desc'exec(@sql)/*col1 col2        col3        xuhao---- ----------- ----------- --------------------F99  SPH00031148 2           1F99  SPH00031183 2           2F99  SPH00031169 5           3F99  SPH00031179 2           4F99  SPH00031180 3           5...F97  SPH00031170 2           8F97  SPH00031165 3           9F97  SPH00031164 2           10F97  SPH00031163 2           11F97  SPH00031166 3           12...F87  SPH00031148 5           1F87  SPH00031183 5           2F87  SPH00031169 5           3F87  SPH00031179 2           4F87  SPH00031180 5           5...F69  SPH00031178 2           19F69  SPH00005106 2           20F69  SPH00005107 3           21F69  SPH00031147 0           22F69  SPH00031149 2           23...F69  SPH00031158 3           32F69  SPH00031156 5           33F69  SPH00031162 3           34F69  SPH00031171 3           35F69  SPH00031181 0           36F69  SPH00031175 2           37...F14  SPH00031181 5           36F14  SPH00031175 7           37F14  SPH00031176 10          38...F11  SPH00031163 3           11F11  SPH00031166 5           12F11  SPH00031167 10          13...F05  SPH00031189 3           42F05  SPH00031190 3           43F05  SPH00031191 3           44(924 row(s) affected)*/
  相关解决方案