重复的数据加序号,这个sql怎么写?

xie168518 2012-03-08 04:00:34
create table #a(a varchar(50),b varchar(10))
insert into #a
select 'aaa','' union all
select 'aaa','' union all
select 'aaa','' union all
select 'aab','' union all
select 'aac','' union all
select 'aac',''

select * from #a

我要得到数据

aaa 01
aaa 02
aaa 03
aab 01
aac 01
aac 02
...全文
788 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yqf0808 2012-03-08
  • 打赏
  • 举报
回复
看看这个。、

select a,
('0' + Convert(varchar(10),row_number() over(partition by a order by getdate()))) as num
from #a

dawugui 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xie168518 的回复:]
如何用临时表啊?
[/Quote]
create table #a(a varchar(50),b varchar(10))
insert into #a
select 'aaa','' union all
select 'aaa','' union all
select 'aaa','' union all
select 'aab','' union all
select 'aac','' union all
select 'aac',''

select t.* , id = identity(int,1,1) into tmp from #a t

update tmp set b = right('0' + cast((select count(1) from tmp where a = t.a and id < t.id) + 1 as varchar),2) from tmp t

select * from tmp


drop table #a,tmp

/*
a b id
-------------------------------------------------- ---------- -----------
aaa 01 1
aaa 02 2
aaa 03 3
aab 01 4
aac 01 5
aac 02 6

(所影响的行数为 6 行)
*/
IT-Style 2012-03-08
  • 打赏
  • 举报
回复

create table abc(a varchar(50),b varchar(10))
insert into abc
select 'aaa','' union all
select 'aaa','' union all
select 'aaa','' union all
select 'aab','' union all
select 'aac','' union all
select 'aac',''

CREATE TABLE #Test(a varchar(50),num int)

declare @a varchar(50)
DECLARE @i int

DECLARE hr_cursor CURSOR FOR
SELECT DISTINCT a,COUNT(*) as c from abc group by a
OPEN hr_cursor

FETCH NEXT FROM hr_cursor
INTO @a,@i

WHILE @@FETCH_STATUS = 0
BEGIN
declare @count int
set @count=1
while @count<=@i
begin
insert into #Test values(@a,@count)
set @count=@count+1
end
FETCH NEXT FROM hr_cursor
INTO @a,@i
END

SELECT * FROM #Test

close hr_cursor
deallocate hr_cursor
xie168518 2012-03-08
  • 打赏
  • 举报
回复
还有没有其他回复啊?
  • 打赏
  • 举报
回复
没用2000,没什么研究,等楼下来给你解决吧
xie168518 2012-03-08
  • 打赏
  • 举报
回复
如何用临时表啊?
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xie168518 的回复:]

sql 2000
[/Quote]

用临时表
  • 打赏
  • 举报
回复


create table #a(a varchar(50),b varchar(10))
insert into #a
select 'aaa','' union all
select 'aaa','' union all
select 'aaa','' union all
select 'aab','' union all
select 'aac','' union all
select 'aac',''


select a,
row_number()over(partition by a order by getdate()) as num
from #a


a num
aaa 1
aaa 2
aaa 3
aab 1
aac 1
aac 2
xie168518 2012-03-08
  • 打赏
  • 举报
回复
sql 2000
PowerBI系列之Power Query专题1.  获取数据 数据源种类介绍和获取Excel数据源输入数据和拷贝数据:创建辅助表解析Json/XML数据格式获取Web网页数据和URL添动态参数连接数据的四种模式:Import、DirectQuery、Live Connection、Dual双 属于混合模式连接数据库:Sql server、 Mysql(直连但是必须先安装一个mysql插件)DirectQuery直连查询:Sql serverODBC方式获取数据表关联或多个Sql或调用存储过程获取数据SQL中动态传参和自定义函数: sql中使用参数或数据库名称使用参数连接Sharepoint和OneDrive数据源连接Dataset和Dataflow 替换本地数据源为Sharepoint数据源并保留数据处理操作 终止当前数据刷新Loading:Cancel Query数据源设置-重置数据连接凭证PBIDS连接数据源创建和使用报表模块(输入或值列表)利用报表模板和参数控制线下报表数据权限DirectQuery启用自动页面刷新和更改检测管理聚合表提高DirectQuery查询性能动态M查询参数提高DirectQuery查询性能添数据刷新时间 DateTime.LocalNow()和Getdate()2.  数据清洗和M语言M语言和官方文档介绍PowerQuery中查阅M函数:=#shared, Ctrl+Space提示数据清洗之常用技能:提升标题、更改数据类型、保留删除错误或空行,删除重复项、选择列和删除列、填充单元格、合并列、拆分、提取、替换、条件替换、添自定义列,添条件列、添索引列、分组、添年月日列、追和合并查询透视和逆透视以及转置合并单元格的Excel文件处理导入文件夹中多Excel文件并合并解决多文件合并中列顺序不一致使用参数和函数批量导入文件 文本中提取中文、英文、数字等处理双引号转义 列拆分详解解决列名改变错误解决列丢失错误动态显示、排序和重命名列为所有列名添前缀列名字母大和分隔符调整Trim标题列中的多余空格如何处理load数据错误为什么load的Excel数据有null空行为什么load的Excel数据标题在第二行灵活添占位符规范同类相似数据数据按多列排序为分组添Index序号分组内值合并诊断工具分析数据处理过程PowerQuery小技巧分享 新冠病例活动轨迹地图标识 

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧