posts - 22,  comments - 36,  trackbacks - 2
数据库截取一定长度的字符串:

/*******************************************

    作者:小朱
    功能:获取一定长度的字符串
    日期:2004年11月01日

******************************************
*/

CREATE FUNCTION [dbo].[uf_GetString]
    (
        
@str VarChar(2000= '',    --要截取的字符串
        @getLen Int = 0            --要截取的长度,按中文的汉字计算
    )  
    
RETURNS VarChar(2000AS  
BEGIN 
    
Declare @lastStr VarChar(2000)
    
Declare @tempStr VarChar(2000)
    
Declare @str1 VarChar(2)
    
Declare @pos Int
    
Declare @ChineseCount Int
    
Declare @EnglishCount Int
    
Select @ChineseCount = 0
    
Select @EnglishCount = 0
    
Select @pos = 1
    
Select @tempStr = LTrim(RTrim(@str))
    
While @EnglishCount / 2 + @ChineseCount < @getLen
    
Begin
        
If Len(@tempStr< @getLen  OR @pos + 1 > Len(@tempStr
        
Begin
            
Select @lastStr = @tempStr
            
Break
        
End
        
Else
        
Begin
            
Select @str1 = SubString(@tempStr,@pos,1)
            
If DataLength(@str1= Len(@str1)
                
Select @EnglishCount = @EnglishCount + 1
            
Else
                
Select @ChineseCount = @ChineseCount + 1
            
            
If @EnglishCount / 2 + @ChineseCount >= @getLen
            
Begin
                
If @EnglishCount % 2 <> 0
                    
Select @lastStr = SubString(@tempStr,1,@pos -1+ ''
                
Else
                    
Select @lastStr = SubString(@tempStr,1,@pos+ ''
                
Break
            
End
            
Select @pos = @pos + 1
        
End
    
End
    
Return @lastStr 
END
posted on 2006-07-05 09:50 小朱 阅读(420) 评论(1)  编辑 收藏 所属分类: SQLServer数据库

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: