加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

tsql – 资本信函前的T-SQL空间

发布时间:2020-05-23 07:13:34 所属栏目:MsSql 来源:互联网
导读:这个问题是不言自明的.你能指出一种在字符串的每个大写字母之间放置空格的方法. SELECT dbo.SpaceBeforeCap(ThisIsATestString) 会导致 This Is A Test String. 假设SQL Server 2005或更高版本,从这里修改的代码修改为: http://www.kodyaz.com/articles/case

这个问题是不言自明的.你能指出一种在字符串的每个大写字母之间放置空格的方法.

SELECT dbo.SpaceBeforeCap('ThisIsATestString')

会导致

This Is A Test String.

解决方法

假设SQL Server 2005或更高版本,从这里修改的代码修改为: http://www.kodyaz.com/articles/case-sensitive-sql-split-function.aspx
CREATE FUNCTION SpaceBeforeCap
(
 @str nvarchar(max)
)
returns nvarchar(max)
as
begin

declare @i int,@j int
declare @returnval nvarchar(max)
set @returnval = ''
select @i = 1,@j = len(@str)

declare @w nvarchar(max)

while @i <= @j
begin
 if substring(@str,@i,1) = UPPER(substring(@str,1)) collate Latin1_General_CS_AS
 begin
  if @w is not null
  set @returnval = @returnval + ' ' + @w
  set @w = substring(@str,1)
 end
 else
  set @w = @w + substring(@str,1)
 set @i = @i + 1
end
if @w is not null
 set @returnval = @returnval + ' ' + @w

return ltrim(@returnval)

end

这可以像上面的建议一样被调用.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读