我想更新列名稱字段與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);但它給出了一個錯誤,說不能使用語句 –