Ⅰ sql中字元串的替換
select
id,stuff(name,1,6,'')
as
name
from
t_table
--stuff(列名,從第幾個字元開始,長度,替換成什麼)
--如上例,就是從第一個字元「第」開始,長度為6,也就是「第n(名字)」替換成空字元
--對於變長的。。那麼這個。
就行了
select
id,substring(name,charindex(')',name)+1,len(name))
as
name
from
t_table
Ⅱ 如何替換SQL里的一段字元串
大概這個意思:
SELECT*FROMAWHEREa=@參數一@
AND(b=@參數二@OR
((@參數三@<>''andb=@參數三@)or(@參數三@=''and1=1))
)
Ⅲ SQL 中怎麼把字元串轉換為數字
可以使用函數:ISNUMERIC
當輸入表達式得數為一個有效的整數、浮點數、money 或 decimal 類型,那麼 ISNUMERIC 返回 1;否則返回 0。返回值為 1 確保可以將 expression 轉換為上述數字類型中的一種。
將字元的數字轉成數字,比如'0'轉成0可以直接用加法來實現;
若絕對比較可以這樣:
select binary 11 =binary "11ddddd";
字元集轉換:CONVERT(xxx USING gb2312);
類型轉換和SQL Server一樣,就是類型參數有點點不同 : CAST(xxx AS 類型),CONVERT(xxx,類型);
類型必須用下列的類型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。
數據類型:
字元串數據類型是建模在形式字元串的想法上的數據類型。字元串是幾乎在所有編程語言中可以實現的非常重要和有用的數據類型。在某些語言中它們可作為基本類型獲得,在另一些語言中做為復合類型獲得。多數高級語言的語法允許通常用某種方式引用起來的字元串來表示字元串數據類型的實例;這種元字元串叫做「文本」或「字元串文本」。
以上內容參考:網路-字元串
Ⅳ sql中如何批量替換欄位里的字元串
update
[表名]
set
[欄位名]=stuff([欄位名],charindex('aaaa',[欄位名],0),charindex('bbb',[欄位名],0)-charindex('aaaa',[欄位名],0)-4+7,'A'),
where
[欄位名]
like
'%aaaa%bbb%'
就是用charindex取得'aaaa','bbb'的位置,計算需要替換字元串的長度,然後用stuff函數替換.
Ⅳ sql中如何批量替換欄位里的字元串
估計你是沒理解replace的意思x0dx0ax0dx0a譬如你舉例的這幾個x0dx0aupdate表名set欄位名=replace(欄位名,'aaaa','cccc');x0dx0ax0dx0a這樣以後x0dx0aaaaaxxxbbb變成ccccxxxbbbx0dx0aaaaamtbbb變成ccccmtbbbx0dx0ax0dx0a替換的是里邊的aaax0dx0ax0dx0a你那麼寫不知道你要改什麼,如果你只要改aaa*bbb的那種可以在後邊加where條件x0dx0ax0dx0aupdate表名set欄位名=replace(欄位名,'aaaa','cccc')where欄位名like'aaa*bbb'x0dx0ax0dx0a當然,這個模糊查詢是access里的,如果是sqlserver或oracle等,那個*是要替換成%的x0dx0ax0dx0a----補充----x0dx0a按你說的意思x0dx0aaccess:x0dx0aupdate表名set欄位名='A'where欄位名like'aaa*bbb'x0dx0ax0dx0asqlserver或oracle:x0dx0aupdate表名set欄位名='A'where欄位名like'aaa%bbb'
Ⅵ sql 替換指定字元串
select
id,stuff(name,1,6,'')
as
name
from
t_table
--stuff(列名,從第幾個字元開始,長度,替換成什麼)
--如上例,就是從第一個字元「第」開始,長度為6,也就是「第n(名字)」替換成空字元
--對於變長的。。那麼這個。
就行了
select
id,substring(name,charindex(')',name)+1,len(name))
as
name
from
t_table
Ⅶ sql怎麼替換字元串中的某個字元
replace(』stringtobechanged』,』keystringtobereplaced』,』stringforreplace』):字元串替換
select replace(』acezih』.』cez』,』bhr』) from al; abhrih
select replace(』acezih』.』czh』,』bhr』) from al; acezih
translate(』stringtobechanged』,』keycharactertobereplaced』,』charactersfroreplace』):字元逐個替換
select translate(』acezih』.』cez,』bhr』)from al; abhrih
select translate(』acezih』.』czh』,』bhr』) from al; abehir
Ⅷ SQL中怎麼將字元串轉
在SQL SERVER 2005中,將表中字元串轉換為數字的函數共2個:
1. convert(int,欄位名) 例如:select convert(int,'3')
2. cast(欄位名 as int) 例如:select cast('3' as int)
其實,一般情況下沒有必要把字元串轉換為數字類型
假如需要比較兩個欄位是否相等,但是一個欄位為字元串類型,一個為數字類型,用「=」比較兩個值是否相等時,SQL SERVER會自動把字元串轉換為數字再比較的!
例如:
select da.TITLE_NAME,dsc.NAME
from dbo.DV_DUTY dd
inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA)
left join DV_ASSET da on(da.ID=dd.RECORD_ID and dd.TYPE='2')
where dd.AREA is not null
這個SQl中,inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA) 中dsc.ID為數字類型,dd.AREA為字元類型,相當於這樣on(1='1')的判斷,這時候就會自動吧字元串的'1'轉換為數字類型再比較的。
但是也有弊端,一旦字元類型轉換為數字類型出錯(說明字元串的確就非數字組成的),SQL就會拋出異常。
SQL SERVER 2005中有判斷欄位是否為數字的函數:
ISNUMERIC(欄位名) -----假如欄位是數字類型返回1,不是就返回0
但是好像有的時候不好使,比如:select isnumeric('3,34') 就返回1
說明這個函數對欄位值中全是數字但是數字間用「,」和「.」(逗號或點)隔開的都視為數字了!
Ⅸ sql 替換指定字元串
CreateFunction[dbo].[MyReplace](@RegVarchar(1000),@SourceVarchar(4000),@StrVarchar(1000))
returnssql_variant
As
Begin
Declare@ErrInt
Declare@objInt
Declare@Rstsql_variant
EXEC@Err=Sp_OACreate'VBScript.RegExp',@objOUTPUT
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'Pattern',@Reg
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'Global','True'
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'IgnoreCase','False'
If@Err<>0GoToLB
EXEC@Err=Sp_OAMethod@obj,'Replace',@RstOUTPUT,@source,@Str
If@Err<>0GoToLB
EXEC@Err=Sp_OADestroy@obj
If@Err<>0GoToLB
Return@Rst
LB:
EXECSp_OADestroy@obj
RETURNNull
End
GO
--開啟OleAutomationProceres配置
/*
execsp_configure'showadvancedoptions',1
reconfigure
execsp_configure'OleAutomationProceres',1
reconfigure
execsp_configure'showadvancedoptions',0
reconfigure
*/
--建表
CreateTableT
(
idint,
codeVarchar(100)
)
--插入數據
InsertIntoTValues(1,'code001,pass002')
InsertIntoTValues(2,'pass001,code002,code003')
InsertIntoTValues(3,'word009,code009')
InsertIntoTValues(4,'code090,word010,code089')
InsertIntoTValues(5,'code008')
--更新
--正則表達式替換(把code+3個數字的都替換成num001)
Select*,dbo.MyReplace('coded{3}',code,'num001')As替換後Fromt
UpdateTSetCode=dbo.MyReplace('coded{3}',code,'num001')