SQL小技巧总结。

一、SQL SERVER如何判断某个字段包含大写字母

View Code

sql语句中默认是不区分大小写的,所以语句: 

Sql代码 
SELECT  *  FROM RecEngineBizInfo  WHERE RecEngineBizName  =  ' QQ ' 
和 
Sql代码 
SELECT  *  FROM RecEngineBizInfo  WHERE RecEngineBizName  =  ' qq ' 

查到的结果是一样的。 

 

如果查询的时候需要区分大小写,需要使用collate Chinese_PRC_CS_AS_WS来进行查询。

SELECT  *  FROM RecEngineBizInfo  WHERE RecEngineBizName collate Chinese_PRC_CS_AS_WS =  ' QQ ' 

 

要查看某个字段是否包含大写字母 A 的脚本为: 
Sql代码 
select  *  from RecEngineBizInfo  where RecEngineBizName collate Chinese_PRC_CS_AS_WS  like  ' %A% ' 
http: //www.2cto.com / 
要查看某个字段是否包含 大写字母 的脚本为: 
Sql代码 
SELECT  *  FROM RecEngineBizInfo rebi 
WHERE rebi.RecEngineBizName COLLATE Chinese_PRC_CS_AS 
like  ' %[ABCDEFGHIJKLMNOPQRSTUVWXYZ]% ' 

要查看某个字段是否包含 连续两个大写字母 的脚本为: 
Sql代码 
SELECT  *  FROM RecEngineAttributeInfo reai 
WHERE reai.ZhiLing COLLATE Chinese_PRC_CS_AS 
like  ' %[ABCDEFGHIJKLMNOPQRSTUVWXYZ][ABCDEFGHIJKLMNOPQRSTUVWXYZ]% ' 

依次类推。 

详细出处参考:http: //www.jb51.net /article / 32063.htm

 

 

二、SqlServer数据库全角转换成半角

View Code
CREATE  FUNCTION f_Convert
    (
       @str  NVARCHAR( max) ,  -- 要转换的字符串 
       @flag  BIT  -- 转换标志,0转换成半角,1转换成全角 
    )
RETURNS  NVARCHAR( 4000)
AS 
     BEGIN 
         DECLARE  @pat  NVARCHAR( 8) ,
             @step  INT ,
             @i  INT ,
             @spc  INT 
         IF  @flag  =  0 
             SELECT   @pat  = N ' %[!-~]% ' ,
                     @step  =  - 65248 ,
                     @str  =  REPLACE( @str, N '    ', N '   '
         ELSE 
             SELECT   @pat  = N ' %[!-~]% ' ,
                     @step  =  65248 ,
                     @str  =  REPLACE( @str, N '   ', N '    '
         SET  @i  =  PATINDEX( @pat COLLATE LATIN1_GENERAL_BIN,  @str
         WHILE  @i  >  0 
             SELECT   @str  =  REPLACE( @strSUBSTRING( @str@i1),
                                    NCHAR( UNICODE( SUBSTRING( @str@i1))
                                          +  @step)) ,
                     @i  =  PATINDEX( @pat COLLATE LATIN1_GENERAL_BIN,  @str
         RETURN( @str
     END 


-- 调用。
SELECT  id,dbo.f_Convert(NAME,  1AS  ' Name '  FROM    dbo.T_User   
 
id Name
2 李,四             
3 王,五             
4 赵六               
5 qq               
6 QQ                 


 

你可能感兴趣的:(sql)