怎样将sql数据库中同一表中的一列数据更改为另外一列的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样将sql数据库中同一表中的一列数据更改为另外一列的数据?相关的知识,希望对你有一定的参考价值。

比如一个表有三个字段a,b,c;a有以下值:1001、1002、1003、1004,b存储相应名称,然后c字段有:1111、null、null、1114,问怎么能将a字段的值更改为c字段不为空的值,就是将c的值全部放到a里面去,但如果c为null的话,a的值不改变?
一楼的方法试了好像不行啊,有错 ;二楼的方法我开始就这么想的,可是行不通诶,根本改动不了

1、打开SQLServerManagement管理工具,使用sql语句创建一张测试表:

2、在测试表中,插入3条测试数据:

3、查询刚刚插入的数据:select*fromtblUpdate;

4、使用一条语句批量修改整个表的数据,慎用:updatetblUpdatesetCol2='女';

5、使用一条语句批量修改指定条数的记录:updatetblUpdatesetCol2='第二次修改'whereId=1orId=2;

6、使用一条语句批量修改这三条数据(按条件修改值):

7、使用一条语句批量修改数据,使用where和casewhen。

参考技术A

用:update 表名 set a=c where c is not null即可。

update 表名 set 列名=想改的值

例子:

数据库表 Card 中的某列名为date ,列中的数据都不相同,把这一列的所有数据都改为2013

update Card set Date=2013

扩展资料:

注意事项

SQL中新增列或者说添加字段的语法:

alter table 表名 add 列名 数据类型

二、例如:在表texttable中添加一列字符型字段colnew:

alter table texttable add colnew char(20)

三、添加的新列,默认值为空值NULL。需要根据需求使用SQL语句更改

1、SQL修改列的语法:

update 表名 set 字段 = 赋值 where字句(确定要修改的列)

2、实例:

update texttable set colnew = 'temp';--把所有行的 colnew列的值改为 "temp"

update texttable set colnew = 'temp' where id=1000 ;--把ID为1000的行 colnew列的值改为 "temp"

   

参考技术B

可用update语句来更改,但要注意,两列的属性及长度应尽量保持一致,或被更改的列的长度大于另一列的长度,否则在update过程中容易报错。

1、创建测试表,插入数据:

create table test
(id int,
name varchar(10),
name1 varchar(10))

insert into test values (1,'a','s')
insert into test values (2,'b','w')
insert into test values (3,'c','x')

数据如下:

2、现在要将name1的内容更改为name中的内容,可用如下语句:

update test set name1=name;

3、更改后的结果如图(此时name和name1列的内容就相同了):

参考技术C select a,b,c=case when a>b then 'F' when a<b then 'T' end from table
update [table] set c=iif(a>b,"F","T")
参考技术D update 表名 set a=c where c <> null

将 hive 外部表更改为同一数据库中的内部表也会从另一个表中删除数据

【中文标题】将 hive 外部表更改为同一数据库中的内部表也会从另一个表中删除数据【英文标题】:changing hive external table to internal table in the same database also drops the data from the another table 【发布时间】:2019-01-29 22:19:10 【问题描述】:

我一直在尝试使用语句删除 hive 外部表

修改表 $tableName set tblproperties('EXTERNAL' = 'FALSE');

在我通过这些属性并做一个

删除表表名;

此命令还会从其中的其他配置单元表中删除数据 数据库。

请任何人都可以建议我为什么这样做?如果有什么办法 我们只能删除一个没有提到的外部表 丢失其他数据。

ALTER TABLE TABLENAME set tblproperties('EXTERNAL' = 'FALSE');
 drop table tablename;

【问题讨论】:

如果有其他表的位置指向同一位置,这是可能的。 是的,我想通了,但感谢您确认感谢 leftjoin 请通过测试查看此答案:***.com/a/54038932/2700344 帮了我很多,再次感谢老兄。 【参考方案1】:

当您在 Hive 中删除托管表时,其包含数据文件的位置也会被删除。并且在技术上可以在同一位置创建许多表,包括托管表和外部表,请参见answer 所以,这种情况是很有可能的。使用相同位置创建的其他一些表也将被清空。实际上,Hive 中的数据和表是松散连接的东西。 Hive 中的表是关于位置、模式、SerDe、统计信息、访问权限等的元存储信息。数据存储在 HDFS/S3 或其他兼容的文件系统中。您可以使用其他一些方法来删除数据或加载数据,例如hadoop fs -rm 命令,而不仅仅是 Hive 中的托管表。

【讨论】:

以上是关于怎样将sql数据库中同一表中的一列数据更改为另外一列的数据?的主要内容,如果未能解决你的问题,请参考以下文章

SQL - 将数据从同一表中的一列复制到另一列

sql如何将一张表中的一列数据分为两列显示

SQL数据库中如何将表中某一列部分负数改为正数

sql怎么把一个表的一列替换到对应的另一个表中对应的列?

怎样一个表中的2个查询结果合并到一个表中的两列

sql将一个表中的某一列数据更新到另一个表中