Ⅰ 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')