日期:2014-05-18  浏览次数:20508 次

SQL 2005 UPDATE问题
有表table,结构如下:
AUTOID AA BB
  1 1 0
  2 1 0
  3 1 0
  4 1 0
  5 1 0
  6 1 0
  7 1 0
  8 1 0
  9 2 0
  10 2 0
  11 2 0
  12 2 0
  13 2 0
  14 3 0
  15 3 0
  16 4 0
现在需要把表中AA字段相等的值的行BB值更新为从1递增的值,更新后,表table的值如下:
AUTOID AA BB
  1 1 1
  2 1 2
  3 1 3
  4 1 4
  5 1 5
  6 1 6
  7 1 7
  8 1 8
  9 2 1
  10 2 2
  11 2 3
  12 2 4
  13 2 5
  14 3 1
  15 3 2
  16 4 1
请问SQL语句怎么写呢?

顺便请教下,通过脚本把txt文件导入到数据库中,除了BCP语句外,还有啥命令?
因为我把txt导入数据库时,发现txt文件有乱码,且不能修改txt,必须把乱码也导入到数据库中

------解决方案--------------------
SQL code
update
 a
set
  bb=b.bb
from
  tb a,
  (select px=row_number() over (partition by AA order by AUTOID),* from tb)b
where
   a.AUTOID=b.px

------解决方案--------------------
SQL code
UPDATE a
SET BB=(SELECT COUNT(1) FROM TABle1 WHERE AA=a.AA AND AUTOID<=a.AUTOID)
FROM TABle1 AS a