同一表中的两列能否用同一句SQL交换位置呢?

gyasy 2004-11-24 10:22:19
难道只能先取出两列的值后再用更新语句吗?
...全文
117 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
是是非非 2004-11-24
在ASP里面这么执行:
conn.execute "DECLARE @tmp VARCHAR (50)" & vbCrLf & _
"update tbTest set @tmp=val2,val2=val1,val1=@tmp"
回复
gyasy 2004-11-24
在ASP中这句怎么用?
DECLARE @tmp VARCHAR (50)
回复
是是非非 2004-11-24
在查询分析器里面执行这段代码

注意,交换的两列必须类型一样
回复
deerchao 2004-11-24
全换吗?
改名不就行了?
回复
gyasy 2004-11-24
尽量不想动数据库,看来是没好办法了,只能多次查询了。
回复
是是非非 2004-11-24
--创建测试表
create table tbTest(
val1 varchar (50),
val2 varchar (50)
)
--插入测试数据
insert into tbTest values('1','a')
insert into tbTest values('2','b')
insert into tbTest values('3','c')
insert into tbTest values('4','d')
insert into tbTest values('5','e')
--输出原来的数据
select * from tbTest
--交换两列的值
DECLARE @tmp VARCHAR (50)
update tbTest set @tmp=val2,val2=val1,val1=@tmp
--输出交换以后的值
select * from tbTest
--删除测试表
drop table tbTest
回复
chenxuchen 2004-11-24
你可以在表中增加一个字段用来作为交换的字段
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-11-24 10:22
社区公告
暂无公告