数据库截取一定长度的字符串

数据库截取一定长度的字符串:

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

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

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

CREATE   FUNCTION   [ dbo ] . [ uf_GetString ]
    (
        
@str   VarChar ( 2000 =   '' ,     -- 要截取的字符串
         @getLen   Int   =   0              -- 要截取的长度,按中文的汉字计算
    )  
    
RETURNS   VarChar ( 2000 AS   
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 +   ' dot.gif '
                
Else
                    
Select   @lastStr   =   SubString ( @tempStr , 1 , @pos +   ' dot.gif '
                
Break
            
End
            
Select   @pos   =   @pos   +   1
        
End
    
End
    
Return   @lastStr  
END

你可能感兴趣的:(数据库截取一定长度的字符串)