col_a col_b
aaa
bbb
ccc
...UPDATE后,实现以下效果
col_a col_b
1 aaa
2 bbb
3 ccc
N ...
aaa
bbb
ccc
...UPDATE后,实现以下效果
col_a col_b
1 aaa
2 bbb
3 ccc
N ...
解决方案 »
- 江湖救急!!!!关于全文检索引擎安装的问题
- 將一個字段的數據拆分成兩個字段
- 数据库通过ldf如何恢复(急急急急急急急!!)
- 请教下:varchar 可变长类型-为什么在powerdesigner中,还要指定varchar类型数据的长度呢?varchar(n)指定这个n有什么意义呢?
- 求一个SQL语句,简单的!
- 一条比较复杂的统计语句```请高手进
- SQL如何定时执行insert任务?
- 奇怪!!!jdo在mysql和mssql里面居然有这种怪现象...
- 3092是什么错误??
- 在存储过程中为每一个用户创建一张临时表,怎么办哪?
- 求几句SQL语名
- 在SQL SERVER里怎么用SQL实现......
declare @i int
set @i=0
update tb set col_a=@i,@i=@i+1
update col_a=row_id
tb
set
col_a=a.col_a
from
(select col_a=row_number()over(order by getdate()),* from tb)a,
tb b
where
a.col_b=b.col_b
-- Author :fredrickhu(小F,向高手学习)
-- Date :2010-04-26 11:40:58
-- Verstion:
-- Microsoft SQL Server 2005 - 9.00.4053.00 (Intel X86)
-- May 26 2009 14:24:20
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([col_a] sql_variant,[col_b] varchar(3))
insert [tb]
select null,'aaa' union all
select null,'bbb' union all
select null,'ccc'
--------------开始查询--------------------------
update
tb
set
col_a=a.col_a
from
(select col_a=row_number()over(order by getdate()),col_b from tb)a,
tb b
where
a.col_b=b.col_b
select * from tb
----------------结果----------------------------
/* col_a col_b
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----
1 aaa
2 bbb
3 ccc(3 行受影响)
*/
GO
CREATE TABLE TB(COL1 VARCHAR(20),COL2 VARCHAR(20))
INSERT INTO TB(COL1)
SELECT 'A' UNION ALL
SELECT 'B' UNION ALL
SELECT 'C'
DECLARE @I INT
SET @I=0
UPDATE TB SET COL2=COL1,COL1=@I,@I=@I+1SELECT * FROM TB
/*
1 A
2 B
3 C
*/
update tb set col_a = (select count(1) from tb where col_b < t.col_b) from tb t