單一筆的更新可以用Update。
UPDATE "表格名"
SET "欄位1" = [新值]
WHERE {條件}
那如果要大量的呢?如:
編號 名稱
1 小明
2 小華
3 小亮
4 小冰
5 小端
改成↓
1 小明
2 華華
3 亮亮
4 冰冰
5 小端
要用什麼方法可以一次修改呢? 匯入可以嗎?
謝謝。
<pre class="c" name="code">UPDATE <表格> SET <欄位>=(SUBSTR(TRIM(<欄位>),2,1)+SUBSTR(TRIM(<欄位>),2,1)) WHERE <欄位> NOT IN("小明","小端")
這樣,就會達到題目上的效果....
謝謝,不過…
但其實這資料表裡總共有4萬多筆,要改的筆數有1萬多筆,
我是把要改的已經用select挑出來,存在excel了。
有沒有匯入的方法? 還是可以更新成select挑出來的結果。
謝謝。
我確時是要新值,不過如果我想要把數出來的新值取代舊的值呢?
請問有辦法這樣做嗎?
編號 OldName NewName
1 小明 小明
2 小華 華華
3 小亮 亮亮
4 小冰 冰冰
5 小端 小端
4 萬筆不算多 台灣人口 2300萬人...
我們交易資料 每月最少幾萬筆
UPDATE MasterTable m
SET m.Name = (SELECT x.NewName FROM ReplaceTable x WHERE m.Name = x.OldName)
WHERE EXISTS (SELECT * FROM ReplaceTable y WHERE y.NewName <> y.OldName AND y.OldName = m.Name)
4萬多筆?40萬筆?4000萬筆,其實是一樣的.
只要下幾次SQL語法,一次幾千筆,幾萬筆的改.不用二個小時就OK了.
SQL語法要簡潔,SQL Book OnLine 要多看.實例多做.
你這一題很基本,但我不想替你解.
你線上Book 將 SELECT 讀通.再將 UPDATE讀熟.妳就有辦法大量修改了.
使用參考其他資料表的方式, 就可以一次更新大量的不規則值
我的回答以不具規則性的資料來說明:
通常更新不具有規則性的資料時, 會建立另外一個暫時的資料表
欄位會加入原資料表的唯一鍵(or 唯一組合鍵)
假設原資料表 Member 的欄位是
<ID>,<Name>,<NickName>,<Phone>,<Address>
其中<ID>為唯一鍵
想更新的欄位有 <NickName>,<Address>
你可以把你 SELECT 出來要改的 Excel 表格改成以下欄位格式的資料
<ID>,<NickName>,<Address>
然後用資料匯入工具把 Excel 資料匯入成新的資料表 MemberUpdateInfo
然後使用比對的更新的 UPDATE 語法
<pre class="c" name="code">
-- 更新時可以使用 UPDATE {Table1}..SET..FROM {Table2} WHERE ..
-- UPDATE 在此時應該是不能使用別名 Alias
UPDATE Member
SET NickName = MemberUpdateInfo.NickName
,Address = MemberUpdateInfo.Address
FROM MemberUpdateInfo
WHERE ID = MemberUpdateInfo.ID
-- 丟棄暫時的資料表
DROP MemberUpdateInfo