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

想对农田字段进行编号,请前辈指点上sql语句?先感谢了

2013-01-02 
想对农田字段进行编号,请前辈指点下sql语句?先感谢了!想通过sql语句运算后如下表,对对一个村、同一个组、同

想对农田字段进行编号,请前辈指点下sql语句?先感谢了!
想通过sql语句运算后如下表,对对一个村、同一个组、同一个农户的农田进行编号,编号规则就是在 农户姓名后加上1 2 3。


农户表  结构如下:

村名称组名称农户姓名农田编号
天天村第一组张三
天天村第一组张三
天天村第一组张三
天天村第一组李四
天天村第一组李四
天天村第一组李四


想得到的结果:

村名称组名称农户姓名农田编号
天天村第一组张三张三1
天天村第一组张三张三2
天天村第一组张三张三3
天天村第一组李四李四1
天天村第一组李四李四2
天天村第一组李四李四3

[解决办法]
with 农田(村名称,组名称,农户姓名)
as(
select '天天村','第一组','张三'  union all
select '天天村','第一组','张三' union all
select '天天村','第一组','张三' union all
select '天天村','第一组','李四' union all
select '天天村','第一组','李四' union all
select '天天村','第一组','李四'),
source as(
select *,rowindex=row_number()over(partition by 农户姓名 order by getdate()) from 农田
)
select 村名称,组名称,农户姓名,农户姓名+rtrim(rowindex) 农田编号 from source
[解决办法]


------解决方案--------------------


Create table 表1 (村名称 char(20),组名称 char(20),农户姓名 char(20) )
Insert 表1
select '天天村','第一组','张三'  union all 
select '天天村','第一组','张三'  union all 
select '天天村','第一组','张三'  union all 
select '天天村','第一组','李四'  union all 
select '天天村','第一组','李四'  union all 
select '天天村','第一组','李四'  


select 村名称,组名称,农户姓名,ROW_NUMBER() 
over(partition by 农户姓名 order by 农户姓名) as 农田编号 from 表1


村名称      组名称         农户姓名        农田编号
--------- ------------ --------------- --------------------
天天村      第一组         李四            1
天天村      第一组         李四            2
天天村      第一组         李四            3
天天村      第一组         张三            1
天天村      第一组         张三            2
天天村      第一组         张三            3

(6 行受影响)

[解决办法]
select 村名称,组名称,农户姓名,(replace(农户姓名,' ','')+convert(varchar(10),ROW_NUMBER() 
over(partition by 农户姓名 order by 农户姓名))) as 农田编号 from 表1

热点排行