更改字段值 有一个表A,A中有一个字段存放的是文件名,如:capdf_0003432_3423.cadrw,现在希望把文件名小数点后的四位字符由小写改为大写,即把cadrw改为CADRw,小数点前的文件名称不变,表中有N条纪录,有什么方法吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 UPDATE TB SET COL=STUFF(COL, CHARINDEX('.', COL)+1, 4, SUBSTRING(COL,CHARINDEX('.',COL)+1,4)) declare @s varchar(40)set @s='capdf_0003432_3423.cadrw'select replace(@s,substring(@s,charindex('.',@s)+1,4),UPPER(substring(@s,charindex('.',@s)+1,4)))/* ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- capdf_0003432_3423.CADRw(所影响的行数为 1 行)*/ UPDATE TB SET COL=STUFF(COL, CHARINDEX('.', COL)+1, 4,UPPER( SUBSTRING(COL,CHARINDEX('.',COL)+1,4))) update 表 set 字段=replace(字段,substring(字段,charindex('.',字段)+1,4),UPPER(substring(字段,charindex('.',字段)+1,4))) select replace(col,substring(col,charindex('.',col)+1,4), upper(substring(col,charindex('.',col)+1,4))) -- 修改?update tb set col=replace(col,substring(col,charindex('.',col)+1,4), upper(substring(col,charindex('.',col)+1,4))) declare @var varchar(2000)set @var='capdf_0003432_3423.cadrw'select stuff(@var,charindex('.',@var)+1,4,upper(substring(@var,charindex('.',@var)+1,4)))/*-----------------------------------------------------------capdf_0003432_3423.CADRw(所影响的行数为 1 行)*/ UPDATE TB SET COL=STUFF(COL, CHARINDEX('.', COL)+1, len(COL) - CHARINDEX('.', COL), upper(SUBSTRING(COL,CHARINDEX('.',COL)+1,len(COL) - CHARINDEX('.', COL)))) --修改update 表名 set 字段名=select stuff(字段名,charindex('.',字段名)+1,4,upper(substring(字段名,charindex('.',字段名)+1,4))) 谢谢各位,问题解决。但是如果小数点前面的文件名中还包括另外一个小数点呢?如:capdf_0003.432_3423.cadrw实际上要改的是后一个小数点后四位 update tb set col=replace(col,substring(col,charindex('.',col)+1,4), upper(substring(col,charindex('.',col)+1,4))) '号问题, 请求指教命令语句 这个sql语句错在哪了? 请问高手personal版本是不是不能和jdbc连接? 求写简单的代码 求一查询 数据库合并问题 关于自动递增列的问题 循环存储过程如何写? MS_SQL文件问题? 请问sql 2000下备份的数据库,是否可以在sql 2005下恢复,会有问题吗? sql连接不到服务器啊!!!!!!!!
set @s='capdf_0003432_3423.cadrw'
select replace(@s,substring(@s,charindex('.',@s)+1,4),UPPER(substring(@s,charindex('.',@s)+1,4)))
/*
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
capdf_0003432_3423.CADRw(所影响的行数为 1 行)*/
UPDATE TB SET COL=STUFF(COL, CHARINDEX('.', COL)+1, 4,UPPER( SUBSTRING(COL,CHARINDEX('.',COL)+1,4)))
replace(col,substring(col,charindex('.',col)+1,4),
upper(substring(col,charindex('.',col)+1,4)))
update tb set col=replace(col,substring(col,charindex('.',col)+1,4),
upper(substring(col,charindex('.',col)+1,4)))
set @var='capdf_0003432_3423.cadrw'
select stuff(@var,charindex('.',@var)+1,4,upper(substring(@var,charindex('.',@var)+1,4)))/*
-----------------------------------------------------------
capdf_0003432_3423.CADRw(所影响的行数为 1 行)
*/
UPDATE TB
SET COL=STUFF(COL, CHARINDEX('.', COL)+1, len(COL) - CHARINDEX('.', COL),
upper(SUBSTRING(COL,CHARINDEX('.',COL)+1,len(COL) - CHARINDEX('.', COL))))
update 表名 set 字段名=select stuff(字段名,charindex('.',字段名)+1,4,upper(substring(字段名,charindex('.',字段名)+1,4)))
但是如果小数点前面的文件名中还包括另外一个小数点呢?如:capdf_0003.432_3423.cadrw
实际上要改的是后一个小数点后四位
upper(substring(col,charindex('.',col)+1,4)))