sql批量替換
❶ sql 數據批量替換更新
UPDATEtbSETXH=REPLACE(XH,'','M')
❷ sql批量替換語句如何實現 麻煩高手幫我一下 小弟感激不盡
這個表如果有主鍵區分的話是可以替換的,把正確的數據存在一個同樣表結構的新表內
用sql:
update a set a.age=
(select b.age from b where a.row_id = b.row_id)
where exists
(select b.age from b where a.row_id = b.row_id)
針對替換范圍內的數據進行替換數據,如果主鍵不能區分,可以多關聯幾個信息
❸ mysql批量替換的SQL語句怎麼寫
替換語句使用UPDATE語句,例如:
UPDATE
表名
SET
欄位名=修改後的值
WHERE
條件
如果你還是不會寫語句,請告訴我你希望進行怎樣的替換,我幫你寫。
❹ 如何批處理命令替換sql文件的某欄位
如果是在windows系統中,打開該sql文件
,CTRL+H打開查找替換功能,輸入你要查找和所要替換的內容,全部替換即可。
如果是在linux/unix系統中,則需要用字元管理命令sed來批量替換。
❺ SQL批量數據替換或正則表達式
我不知道你用的是什麼資料庫,下面我給你一個Oracle資料庫的替換掉(-N+數字)的例子
update[dbo].[Winit庫存]set[商品編號]=REGEXP_REPLACE([商品編號],'-Nd+','')
不同的資料庫,用的可以用正則表達式的replace函數不一樣
SQL Server中我不知道你那裡有沒有dbo.RegexReplace函數,是不是還要現建這個替換函數
update[dbo].[Winit庫存]set[商品編號]=dbo.RegexReplace([商品編號],'-Nd+','',1)
下面是建立RegexReplace函數的sql語句
--如果存在則刪除原有函數
IFOBJECT_ID(N'dbo.RegexReplace')ISNOTNULL
DROPFUNCTIONdbo.RegexReplace
GO
--開始創建正則替換函數
CREATEFUNCTIONdbo.RegexReplace
(
@stringVARCHAR(MAX),--被替換的字元串
@patternVARCHAR(255),--替換模板
@replacestrVARCHAR(255),--替換後的字元串
@IgnoreCaseINT=0--0區分大小寫1不區分大小寫
)
RETURNSVARCHAR(8000)
AS
BEGIN
DECLARE@objRegexINT,@retstrVARCHAR(8000)
--創建對象
EXECsp_OACreate'VBScript.RegExp',@objRegexOUT
--設置屬性
EXECsp_OASetProperty@objRegex,'Pattern',@pattern
EXECsp_OASetProperty@objRegex,'IgnoreCase',@IgnoreCase
EXECsp_OASetProperty@objRegex,'Global',1
--執行
EXECsp_OAMethod@objRegex,'Replace',@retstrOUT,@string,@replacestr
--釋放
EXECUTEsp_OADestroy@objRegex
RETURN@retstr
END
GO
--保證正常運行的話,需要將OleAutomationProceres選項置為1
EXECsp_configure'showadvancedoptions',1
RECONFIGUREWITHOVERRIDE
EXECsp_configure'OleAutomationProceres',1
RECONFIGUREWITHOVERRIDE
❻ 怎麼批量替換SQL關鍵字
用sql的批量更新功能,把要替換字元替換成想要替換成的字元。
sql替換語句,用該命令可以整批替換某欄位的內容,也可以批量在原欄位內容上加上或去掉字元。
命令總解:update 表的名稱 set 替換欄位=REPLACE(替換欄位,原來內容,新內容)
舉例說明:
1)把backupfile表裡url的欄位內容為http://16hg.cn的全部改為http://16hg.net。
update backupfile set url=REPLACE(url,'http://16hg.cn','http://16hg.net')
2)根據條件增加欄位的內容,如把file_number=1的記錄的logical_name欄位的內容前面加上tmp,後面加上end。
update backupfile set logical_name=REPLACE(logical_name,logical_name,'tmp'+logical_name+' end ') where file_number=1
3)根據條件去掉指定記錄的前面2個字元。
update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,3,len(logical_name)-2)) where file_number=1
4)根據條件去掉指定記錄的後面4個字元。
update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,1,len(logical_name)-4)) where file_number=2
如有不清楚的可以先用select語句驗證是否達成自己想要的效果再進行替換:
SELECT REPLACE(替換欄位,'原內容','新內容') from 表名;
update 表名 set 替換欄位=(REPLACE(替換欄位,'原內容','新內容'))
SQL增加欄位內容 update member set memo=memo+'增加一年'
❼ 如何用SQL批量替換字元
SUBSTRING
(UserCode,
5,
len(UserCode)-3)
你裡面的5,是什麼意思呢???
從第4位開始取啊,應該是4,就可以了
❽ 如何批量執行sql查找替換
在Linux裡面,有一個比較好的工具sed,sed -i "s#A#B#g" filename,比如:sed -i "s#linux#windows#g" a.txt,這樣可以把a.txt文件中所有的linux替換成windows,「#」可以換成其他的字元,可以根據實際情況來定。如果替換的內容來自文件,可以用腳本遍歷文件的方式實現。例如:
舊地址文件:A.txt,需要處理的sql文件:mysql.sql,替換後的新內容:newtext
#/bin/bash
for line in `cat .A.txt`;
do
sed -i "s#$line#newtext#g" mysql.sql
done
當然,也可以指定替換行的范圍(例如50行到100行),具體的請參考linux下sed命令的用法
❾ sql批量替換要怎麼弄
啥資料庫,,,
sqlserver可以直接
selectimg+pinyin+'/'
from表
update表setimg=img+pinyin+'/'
where
這樣就可以了,,,
各個資料庫連接符不同,,,,
❿ SQL將查詢結果中的值批量替換為其它值
mysql的話:
update表1a,表2b,表2cseta.BatchID=b.name,a.PlanNature=c.namewherea.BatchID=b.BatchIDanda.PlanNature=c.BatchID
你第二個表沒給欄位名,第三列我這邊定義為BatchID,第四列定義為name。
執行前備份表1