Sql中如何将数据表的两个字段的值如何互换?

今天遇到一个数据表的两个列数据要互换,在网上找到并记录下。

直接用Sql就可以搞定,语法如下

--将数据表中两个列数据互换的语法--
update tabName set field1=field2,field2=field1

我们来模拟验证一下,在数据库建立一个这样的表

第一步:创建数据表

--1、创建数据表--
create table Student(
    StuId int identity(1,1) primary key,
    StuCode varchar(50) not null,
    StuName varchar(50) not null,
    Notes varchar(200) null
)

第二步:插入数据

--2、插入数据--
insert into Student(StuCode,StuName) values(‘1001‘,‘张老师‘);
insert into Student(StuCode,StuName) values(‘1002‘,‘李老师‘);

第三步:查询数据(未执行前结果)

第四步:使用语法

--4、将数据表中两个列数据互换的语法--
update Student set StuCode=StuName,StuName=StuCode

第五步:执行结果

PS:如何不想全部修改,可在后续添加where条件做限制

原文地址:https://www.cnblogs.com/xielong/p/10417425.html

时间: 2024-10-10 02:54:30

Sql中如何将数据表的两个字段的值如何互换?的相关文章

如何在SQL中产生交叉式数据表(枢纽分析表)Part 2(PIVOT,UNPIVOT)

之前小喵使用SQL2000的时候,为了产生交叉数据表(Excel中称为枢纽分析表),小喵用了以下这篇的方式来处理 http://www.dotblogs.com.tw/topcat/archive/2008/04/14/2909.aspx 这样的方式在SQL 2005里面一样可以用,不过2005又新增了一个更方便的东西,可以更简洁的来处理.这个东西就是[PIVOT],神奇的是,除了可以透过PIVOT产生交叉数据表,还可以透过UNPIVOT将交叉数据表转回原来的方式(这对于有些数据表的正规化很有帮

数据库中批量导入数据,有两列的值需要从其他表中查出来,我现在没有思路,求解惑

我现在批量往数据库里导正式数据(sql insert),但是数据中有三列分别是岗位,办事处,大区,给的数据中只给了岗位的值,办事处的值可以通过岗位值在岗位表查到,大区的值可以通过办事处的值在办事处表里查到.现在我已经把其他数据都导进去了,只剩办事处和大区没有值,我该如何批量更新这两列的值啊 导入的数据的表: 岗位表: 办事处表: 本人sql不是很好,希望sql大神能给出来解惑一下,拜谢~ 数据库中批量导入数据,有两列的值需要从其他表中查出来,我现在没有思路,求解惑 >> mysql 这个答案描

sql Server中临时表与数据表的区别

sql server 中临时表与数据表的区别 1.如何判断临时表和数据表已生成 --如何判断临时表是否已创建--- if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#Temp_Student')) begin print '存在临时表'; end else begin print '不存在临时表'; end --如何判断数据表是否已创建--- if exists(select * from sys.ta

SQL中查看数据库各表的大小

SQL中查看数据库各表的大小 编写人:CC阿爸 2014-6-17 在日常SQL数据库的操作中,如何快速的查询数据库中各表中数据的大小. 以下有两种方法供参考: 第一种: create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20)) exec sp_MSforeachtable "insert i

MySQL中快速复制数据表方法汇总

本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: 将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下: CREATE TABLE mytbl_new LIKE production.mytbl; INSERT mytbl_new SELECT * FROM production.mytbl; 第一个命令

使用Sql语句快速将数据表转换成实体类

开发过程中经常需要根据数据表编写对应的实体类,下面是使用sql语句快速将数据表转换成对应实体类的代码,使用时只需要将第一行'TableName'引号里面的字母换成具体的表名称就行了: declare @TableName sysname = 'TableName' declare @Result varchar(max) = 'public class ' + @TableName + ' {' select @Result = @Result + ' public ' + ColumnType

在SQL 中生成JSON数据

这段时间接手一个数据操作记录的功能,刚拿到手上的时候打算用EF做,后来经过仔细考虑最后还是觉定放弃,最后思考再三决定: 1.以模块为单位分表.列固定(其实可以所有的操作记录都放到同一个表,但是考虑到数据量大的时候查询性能的问题还是分表吧)列:主键ID.引用记录主键ID.操作时间.操作类型.详细信息(里面存储的就是序列化后的值) 2.在客服端解析保存的序列化的值 但是用xml还是用json呢,这有是一个问题,显然用xml在存储过程正很容易就能生成了:SELECT * FROM TABLE FOR 

【SQL Server】sql server更改了数据表的字段/新增数据表的字段 无法保存

sql server更改了数据表的字段/新增数据表的字段  无法保存 解决方法:进入 工具-->选项-->Designers-->表设计器和数据库设计器-->取消勾选   即可

SQL 快速新增权限数据表(使用cross join)

摘要:SQL 快速新增权限数据表(使用cross join) 1.因为设计系统的时候 将角色 权限 系统都做了分开处理 偏偏交集起来相当多数据 2.决定不自己打 使用cross join 先练习一下一般的语法 --use 数据库 --select a.浏览,a.修改,a.删除,b.系统名称,c.角色名称 --from 角色权限 as a --cross join 系统 as b --cross join 角色 as c --go 像这样 3.开始改写 使用cross join --先清空表单 已