一、問題描述: 資料庫中欄位 nvarchar類型 存放數據如下: '3.3×10' 二、解決方案: --測試用例CREATE TABLE #temp(NAME NVARCHAR(20) null) INSERT INTO #temp select FecalColiform from Water ...
一、問題描述:
資料庫中欄位 nvarchar類型 存放數據如下:
'3.3×10'
二、解決方案:
--測試用例
CREATE TABLE #temp
(NAME NVARCHAR(20) null)
INSERT INTO #temp select FecalColiform from WaterQuality
select * from #temp
update #temp set Name=replace(Name,'','') ; --- 1
update #temp set Name=replace(Name,'','') ; --- 2
update #temp set Name=replace(Name,'','') ; --- 3
update #temp set Name=replace(Name,'','') ; --- 4
--結果有效 。
--實際項目運用
update WaterQuality set FecalColiform=replace(FecalColiform,'','') ; --- 1
update WaterQuality set FecalColiform=replace(FecalColiform,'','') ; --- 2
update WaterQuality set FecalColiform=replace(FecalColiform,'','') ; --- 3
update WaterQuality set FecalColiform=replace(FecalColiform,'','') ; --- 4
你可能有一個疑問 為什麼重覆執行相同的操作??
答:'' 這個東西看起來相同,實際又各不相同。
你需要完整的複製出該列,然後全部選中看他們的後面凹凸狀態 是否都為空了。
然後把那些沒修改成功的空格單獨複製出來再修改。
例如 複製出放入單引號中觀察 '2.0×10' ,然後複製出它的特有的‘’,然後在執行一次修改。
修改前:
修改後:
三、失敗經驗:
1.trim方法
select ltrim(' 3.3×10') --去除左邊的空格
select rtrim('3.3×10 ') --去除右邊的空格
select ltrim(rtrim(' 3.3×10 ')) --去除首尾空格
結果有效。
但是真實的數據是這樣的 '3.3×10'
select ltrim(rtrim('3.3×10')) --去除首尾空格
結果無效。
參考過的文章:
https://zhidao.baidu.com/question/183968041.html
https://www.cnblogs.com/TurboWay/p/5924445.html