sqlserver 如何将表中, 某字段里面所有数据的首字母都转换为大写

如题:某一个表有1000条数据,如test表下的name列,name的值全是英文,如何批量将所有name值的首字母都转换成大写字母?求高手解答... 如题:某一个表有1000条数据, 如 test 表下的name列, name的值全是英文, 如何批量将所有name值的首字母都转换成大写字母? 求高手解答 展开
 我来答
约翰约深Zt
2012-05-28 · TA获得超过410个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:95.1万
展开全部
update test set name= STUFF( name,1,1,UPPER(SUBSTRING(name,1,1)))
更多追问追答
追问
测试了下你这个,  是把整个字符串的首字母改成了大写, 那么如何将字符串中,每个单词的首字母转换成大写?  比如说“name student class address phone”  转换成“Name Student Class Address Phone”  谢了
追答
create   function   f_Trans(@col   varchar(2000))   
returns varchar(2000)
as
begin
set @col=replace(@col,' ',' ')
set @col=replace(@col,',','**,')
set @col=replace(@col,' ',',')

declare @sql varchar(2000)
set @sql=''
while charindex(',',@col)>0
select @sql=@sql+upper(left(@col,1))+LOWER(replace(substring(@col,2,charindex(',',@col)-1),',',' ')),
@col=substring(@col,charindex(',',@col)+1,len(@col)-charindex(',',@col))
set @sql=@sql+upper(left(@col,1)) + replace(LOWER(right(@col,len(@col)-1)),',',' ')
set @sql=replace(@sql,'** ',',')
set @sql=replace(@sql,',,',', ')
return(@sql)
end

go

调用
update test set name=dbo.f_Trans(name)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26c14b1d3
2012-05-28 · TA获得超过336个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:323万
展开全部
用upper结合sbustring实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式