簡體   English   中英

將同一表中一列的值更新到 SQL Server 中的另一列

[英]Update values from one column in same table to another in SQL Server

我試圖用在 TYPE2 中找到的值覆蓋在 TYPE1 中找到的值。

我寫了這個 SQL 來嘗試一下,但由於某種原因它沒有更新:

select * from stuff

update stuff
set TYPE1 = TYPE2
where TYPE1 is null;

update stuff
set TYPE1 = TYPE2
where TYPE1 ='Blank';

http://www.sqlfiddle.com/#!3/a4733/17

我在 TYPE1 中的值沒有更新的任何原因?

這對我有用

select * from stuff

update stuff
set TYPE1 = TYPE2
where TYPE1 is null;

update stuff
set TYPE1 = TYPE2
where TYPE1 ='Blank';

select * from stuff
UPDATE a
SET a.column1 = b.column2
FROM myTable a 
INNER JOIN myTable b
on a.myID = b.myID

為了使“a”和“b”都能工作,必須定義兩個別名

UPDATE TABLE_NAME SET COLUMN_A = COLUMN_B;

容易多了。 至少在 Oracle SQL 上,我不知道這是否也適用於其他方言。

您將選擇查詢放在更新查詢之前,因此您只會看到初始數據。 select * from stuff; 到列表的末尾。

這個關於從同一表中另一列的一部分更新列的答案。

update T1
set domainname = (New value) --Example: (SELECT LEFT(TableName.col, CHARINDEX('@',TableName.col)-1) STRIPPED_STRING FROM TableName where TableName.col = T2.Emp_ID)
from TableName T1
INNER JOIN
    TableName T2
ON 
    T1.ID= T2.ID;
update TABLE_1 a set COLUMN_1 = (select COLUMN_2 from TABLE_1 b where a.ID = b.ID)

您的選擇語句在更新語句之前,請參閱更新的小提琴

UPDATE `tbl_user` SET `name`=concat('tbl_user.first_name','tbl_user.last_name') WHERE student_roll>965

如果您需要對特定列進行操作:

update courses set hours = days * 5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM