專案開發遇到資料存寫錯誤,導致資料中欄位內容,數字中含有分號結尾。如下圖:
現在要去去掉末尾的分號,查詢sql如下:
select substr(t.buy_reason, 1, length(t.buy_reason) - 1)
from tm_potential_customer t
where 1 = 1
and substr(t.buy_reason, length(t.buy_reason), 1) = ';'
and t.buy_reason is not null
and trim(t.buy_reason) <> '';
更新sql如下:
update tm_potential_customer m
set m.buy_reason=(select substr(t.buy_reason, 1, length(t.buy_reason) - 1)
from tm_potential_customer t
where 1 = 1
and substr(t.buy_reason, length(t.buy_reason), 1) = ';'
and t.buy_reason is not null
and trim(t.buy_reason) <> ''
and t.customer_no = m.customer_no
and t.entity_code = m.entity_code
)where substr(m.buy_reason, length(m.buy_reason), 1) = ';'
and m.buy_reason is not null
and trim(m.buy_reason) <> ''
;
效果如下圖:
注意:update語句一定要加上where條件,過濾需要更新的語句,不然容易把字段更新成null,我在開發測試中就遇到了這個問題,沒有判斷需要更新的條件,比如一定是最後分號結尾的字段才更新,如果沒有這個條件,sql執行多次就會把字段更新成null
錯誤sql如下:
update tm_potential_customer m
set m.buy_reason=(select substr(t.buy_reason, 1, length(t.buy_reason) - 1)
from tm_potential_customer t
where 1 = 1
and substr(t.buy_reason, length(t.buy_reason), 1) = ';'
and t.buy_reason is not null
and trim(t.buy_reason) <> ''
and t.customer_no = m.customer_no
and t.entity_code = m.entity_code
)where
--substr(m.buy_reason, length(m.buy_reason), 1) = ';'
m.buy_reason is not null
and trim(m.buy_reason) <> ''
;
SQL資料庫修復 資料庫置疑修復
sql資料庫修復的三大核心技術 1 磁碟陣列分析重組技術 2 資料庫恢復與修復技術 3 scsi盤物理故障開盤技術。至今已經成功恢復數百台伺服器的sql資料庫,使用者覆蓋全國。導致sql資料庫丟失的原因 1 各種原因 誤刪除 誤格式化 斷電等造成的ms sql server資料庫檔案破壞。2 ms ...
sql語句插入的資料中含有單引號怎麼辦?
sql語句插入的資料中含有單引號怎麼辦?access,sql server,asp sql中,insert into yourtable f1,f2 values 100,abc 字串資料是用單引號包在外面的,如果插入的資料中包含單 引號,就需要處理,你可以將單引號替換成兩個單引號,在sql 中連續...
SQL語句中含有乘號報錯的處理辦法
在ado中,我們需要在sql語句中使用乘法運算,可是新增 以後執行程式總是會出錯,這是因為 與sql中的 關鍵字重合了,所以編譯會出錯。解決辦法 將乘法運算放到sql語句外面,將結果放入乙個變數中,然後在sql語句中引用即可 int count this.aspnetpager1.currentpa...