MSSQLSERVER:如何用SQL语句得到一递增列(不能增加字段)的问题。

supsuccess 2002-01-19 09:00:55
任意一表如TB,字段任意,但其本身没有IDENTITY列,不能修改表结构,怎样来产生这样的一列呢?比如在查询时...
TB: 产生的查询集(TT)
COL1 COL2 COL1 COL2 ID
A 1 A 1 1
A 2 A 2 2
B 1 =====> B 1 3
C 1 C 1 4
E 2 E 2 5
... ... ... ... ...

注:表TB中的两列,没有实际意义!
多谢!
...全文
150 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
supsuccess 2002-01-19
  • 打赏
  • 举报
回复
飄香兄也是高手!
还有吗????????
N_chow 2002-01-19
  • 打赏
  • 举报
回复
當鍵值不重複時可用:

Select (Select Count(*) from tblName a Where a.KeyCol<=b.KeyCol),* From tblName b
supsuccess 2002-01-19
  • 打赏
  • 举报
回复
正确!
还有别的方法吗?没有就结帐了!!
蓝天 2002-01-19
  • 打赏
  • 举报
回复
Haiwer(海阔天空) 的正确
昵称被占用了 2002-01-19
  • 打赏
  • 举报
回复
应该可以用TABLE变量,我没用过,你试一下:
declare @Tb table(
COL1 char(10),
COL2 int,
ID int IDENTITY(1,1) ------不知道这里行不行,没有测试环境,你试一下
)

insert @Tb
select * from tb


supsuccess 2002-01-19
  • 打赏
  • 举报
回复
to:Haiwer(海阔天空)
如果不用临时表可以吗?还有别的方法吗?
昵称被占用了 2002-01-19
  • 打赏
  • 举报
回复
谢谢supsuccess(口气不小) 提醒!
昵称被占用了 2002-01-19
  • 打赏
  • 举报
回复
sorry,写掉了,用临时表转一下:
select *,IDENTITY(int,1,1) as id into #Temp from tb
select * from #Temp

supsuccess 2002-01-19
  • 打赏
  • 举报
回复
to:Haiwer(海阔天空)
仅当 SELECT 语句中有 INTO 子句时,才能使用 IDENTITY 函数。
昵称被占用了 2002-01-19
  • 打赏
  • 举报
回复
select *,IDENTITY(int,1,1) as id from tb
supsuccess 2002-01-19
  • 打赏
  • 举报
回复
有意思,再等等...
蓝天 2002-01-19
  • 打赏
  • 举报
回复
回复人: N_chow(一劍飄香++) (2002-1-19 12:11:28) 得0分
當鍵值不重複時可用:

Select (Select Count(*) from tblName a Where a.KeyCol<=b.KeyCol),* From tblName b

这不是排序的语句吗?

34,587

社区成员

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

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