首字母小写转大写

wufaxiangxiang 2008-07-30 08:22:55
比如:
how do you do?
如何转成
How Do You Do?
...全文
786 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhou968 2008-07-30
  • 打赏
  • 举报
回复
不好意思,set @s = stuff(@s,@i-1,1,upper(substring(@s,@i-1,1))) 和if @i >@j continue 对调下

declare
@s varchar(50),
@i int,
@j int
select @s = 'thank you for your help',@i = 1,@j = len(@s)
while charindex(' ',' '+@s,@i) >0
begin
set @i = charindex(' ',' '+@s,@i)+1
set @s = stuff(@s,@i-1,1,upper(substring(@s,@i-1,1)))
if @i >@j continue
end
select @s
go
lff642 2008-07-30
  • 打赏
  • 举报
回复
学习,顶。
hyde100 2008-07-30
  • 打赏
  • 举报
回复
学习,再看
jasonren 2008-07-30
  • 打赏
  • 举报
回复
山羊的方法比较好.


declare @str varchar(200)
set @str='how do you do? '

create table #t(id int identity(65,1),Chr char(1))
insert #t(chr)
select top 26 ' ' from syscolumns

set @str=' ' +@str
SELECT @str=replace(@str,' '+char(id),' '+char(id)) FROM #t
set @str=stuff(@str,1,1,'')
select @str

drop table #t



zhou968 的程序块
如果最后一个单词只有1个字符,是无法转为大写的.
新鲜鱼排 2008-07-30
  • 打赏
  • 举报
回复
十分怀念oracle里面的initcap函数。
xiaomeixiang 2008-07-30
  • 打赏
  • 举报
回复

declare @str varchar(200)
set @str='how do you do? '

create table #t(id int identity(65,1),Chr char(1))
insert #t(chr)
select top 26 ' ' from syscolumns

set @str=' ' +@str
SELECT @str=replace(@str,' '+char(id),' '+char(id)) FROM #t
set @str=stuff(@str,1,1,'')
select @str

drop table #t
ying_wzm 2008-07-30
  • 打赏
  • 举报
回复
学习
水族杰纶 2008-07-30
  • 打赏
  • 举报
回复
--使用程序块:
declare
@s varchar(50),
@i int,
@j int
select @s = 'thank you for your help',@i = 1,@j = len(@s)
while charindex(' ',' '+@s,@i) >0
begin
set @i = charindex(' ',' '+@s,@i)+1
if @i >=@j continue
set @s = stuff(@s,@i-1,1,upper(substring(@s,@i-1,1)))
end
select @s
go
--使用函数:
create function F_split(@s nvarchar(1000))
returns nvarchar(1000)
as
begin
declare
@s2 nvarchar(1000),
@Split nvarchar(100)
select @s=@s+char(32),@s2=''
while charindex(char(32),@s)>0
select @Split=left(@s,charindex(char(32),@s)),@s2=@s2+upper(left(@Split,1))+right(@Split,len(@Split)),@s=stuff

(@s,1,charindex(char(32),@s),'')
return @s2
end
go
学习ing
zhou968 2008-07-30
  • 打赏
  • 举报
回复

--使用程序块:
declare
@s varchar(50),
@i int,
@j int
select @s = 'thank you for your help',@i = 1,@j = len(@s)
while charindex(' ',' '+@s,@i) >0
begin
set @i = charindex(' ',' '+@s,@i)+1
if @i >=@j continue
set @s = stuff(@s,@i-1,1,upper(substring(@s,@i-1,1)))
end
select @s

--使用函数:
create function F_split(@s nvarchar(1000))
returns nvarchar(1000)
as
begin
declare
@s2 nvarchar(1000),
@Split nvarchar(100)
select @s=@s+char(32),@s2=''
while charindex(char(32),@s)>0
select @Split=left(@s,charindex(char(32),@s)),@s2=@s2+upper(left(@Split,1))+right(@Split,len(@Split)),@s=stuff

(@s,1,charindex(char(32),@s),'')
return @s2
end
go

declare
@s nvarchar(1000)
set @s='thank you for your help'
select dbo.F_split(@s)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧