我想更新列名称字段与2行相同的字段为空的列表,其中列中的邮政编码为空。从表中的值更新列空格
所以运输邮编空白需要填写相同的运输邮编,其中名称是相同的。
感谢
The attached is the table screenshot
我想更新列名称字段与2行相同的字段为空的列表,其中列中的邮政编码为空。从表中的值更新列空格
所以运输邮编空白需要填写相同的运输邮编,其中名称是相同的。
感谢
The attached is the table screenshot
您没有提供实际的表名。我将使用table_name
作为向您显示要执行的操作的一种方式。我正在使用table_name两次,所以每次给它一个别名(m
& f
)。这样我们就可以做比较
慢答案
UPDATE table_name m
SET m.shipping_zip =
(SELECT f.shipping_zip
FROM table_name f
WHERE f.Name=m.Name and f.shipping_zip<>'')
WHERE m.shipping_zip = '';
快速的答案(但未经测试)
UPDATE table_name m, table_name f
SET m.shipping_zip = f.shipping_zip
WHERE m.Name=f.Name AND m.shipping_zip='' AND f.shipping_zip<>'';
我假设你使用两个表 - m和f。我正在尝试在表格中执行此操作,使用没有空白(zipcode)的列中的数据并将该数据移动到空白列中 –
不,我使用一个表格,但给了它两个不同的名称,以便我们可以比较并采取行动。这在SQL中是一个巧妙的技巧。你没有提供表名,所以我在里面放了一个通用的table_name。 –
它引发了一个错误代码1093,你不能指定目标表m更新从子句...没有工作 –
这可以这样
update `table` t, (select * from `table`
where shipping_zip is not null and shipping_zip != '')q
set t.shipping_zip = q.shipping_zip
where t.Name = q.Name;
确实SQL允许您使用从“表”在select语句中? –
这里“table”是你的表的名字。用实际的表名替换它。我在示例表中试用了这个确切的查询。它工作得很好。 – codeslayer1
它引发了一个错误代码1175,说你正在使用安全更新模式,并试图更新一个表,而没有使用一个关键列的地方..我不知道什么是所有关于 –
尝试使用Google'sql中填写完成具有前一行值的列,第一*四*结果是SO答案。 – blueCat
你到目前为止尝试过什么? – Eric
我试过这个查询:更新表s1 set s1.shipping_zip =(从表中选择shipping_zip其中Name = Name);但它给出了一个错误,说不能使用语句 –