MSSQL將首字母替換成大寫

本文介绍了几种在 SQL Server 中处理字符串的方法,包括使用程序块、自定义函数以及系统表来实现字符串首字母的大写转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--使用程序块

-->Title:生成測試數據
-->Author:wufeng4552
-->Date :2009-09-21 13:40:59
declare @s varchar(8000)
set @s=lower(@@version)
select @s
/*
microsoft sql server 2005 - 9.00.4035.00 (intel x86)
 nov 24 2008 13:01:59
 copyright (c) 1988-2005 microsoft corporation
 enterprise edition on windows nt 5.2 (build 3790: service pack 2)


(1 個資料列受到影響)
*/
declare @i int,@j int
select @i=1,@j=len(@j)
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
/*
Microsoft Sql Server 2005 - 9.00.4035.00 (intel X86)
 nov 24 2008 13:01:59
 copyright (c) 1988-2005 Microsoft Corporation
 enterprise Edition On Windows Nt 5.2 (build 3790: Service Pack 2)


(1 個資料列受到影響)
*/

----使用函数

-->Title:生成測試數據
-->Author:wufeng4552
-->Date :2009-09-21 13:40:59
if object_id('F_split')is not null drop function dbo.F_split
go
create function F_split(@s nvarchar(1000))
returns nvarchar(1000)
as
begin
  declare @str nvarchar(1000),@split nvarchar(100)
  select @s=@s+' ',@str=''
  while charindex(' ',@s)>0
     begin
        set @split=left(@s,charindex(' ',@s))
        set @str=@str+upper(left(@split,1))+right(@split,len(@split))
        set @s=stuff(@s,1,charindex(char(32),@s),'')
     end
 return @str
end
go
declare @s varchar(1000)
set @s=lower(@@version)
select dbo.F_split(@s)
/*
Microsoft Sql Server 2005 - 9.00.4035.00 (intel X86)
 nov 24 2008 13:01:59
 copyright (c) 1988-2005 Microsoft Corporation
 enterprise Edition On Windows Nt 5.2 (build 3790: Service Pack 2)
*/

--3借住系統表,或臨時表

-->Title:生成測試數據
-->Author:wufeng4552
-->Date :2009-09-21 13:40:59
declare @str varchar(1000)
select @str=char(32)+lower(@@version)
select @str=replace(@str,char(32)+char(number),char(32)+char(number))
from master..spt_values
where type='p' and number between 65 and 90
select stuff(@str,1,1,'')
/*
Microsoft Sql Server 2005 - 9.00.4035.00 (intel X86)
 nov 24 2008 13:01:59
 copyright (c) 1988-2005 Microsoft Corporation
 enterprise Edition On Windows Nt 5.2 (build 3790: Service Pack 2)


(1 個資料列受到影響)

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值