sql 随笔 2015-07-02

sql 自定义函数

 --检查函数是否存在
 if exists (select * from dbo.sysobjects where id = object_id(N'dbo.pTitleCase') and xtype in (N'FN', N'IF', N'TF'))    
  drop function dbo.pTitleCase  ;
 go

--创建函数
create function dbo.pTitleCase(@strIn nvarchar(Max))
	returns nvarchar(Max)
as 
	begin;
		declare
		@strOut nvarchar(max),
		@currentPostion int,
		@nextSpace int,
		@currentWord nvarchar(max),
		@strLen int,
		@lastWord bit;
	
	set @nextSpace = 1;
	set @currentPostion =1;
	set @strOut ='';
	set @strLen=Len(@strIn);
	set @lastWord=0;
	
	while @lastWord=0
		begin;
			set @nextSpace=CharIndex( ' ',@strIn,@currentPostion+1)
			if @nextSpace=0 --no more spaces found
				begin;
					set @nextSpace=@strLen;					
					set @lastWord=1;
				end;
			
			set @currentWord = Upper(substring(@strIn,@currentPostion,1));
			set @currentWord = @currentWord + lower(substring(@strin,@currentPostion+1,@nextSpace-@currentPostion));
			set @strOut=@strOut+@currentWord;
			set @currentPostion=@nextSpace+1;
		end;
	return @strOut;
end;
go	

--执行函数
SELECT [Demo].[dbo].[pTitleCase] ( 'one TWO tHrEe')
go
			
	

  

转载于:https://www.cnblogs.com/xiaobuild/p/4616027.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值