博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL小技巧总结。
阅读量:4661 次
发布时间:2019-06-09

本文共 1803 字,大约阅读时间需要 6 分钟。

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

ExpandedBlockStart.gif
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数据库全角转换成半角

ExpandedBlockStart.gif
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(
@str
SUBSTRING(
@str
@i
1),
                                   
NCHAR(
UNICODE(
SUBSTRING(
@str
@i
1))
                                         
+ 
@step)) ,
                    
@i 
= 
PATINDEX(
@pat COLLATE LATIN1_GENERAL_BIN, 
@str
        
RETURN(
@str
    
END 
--
调用。
SELECT  id,dbo.f_Convert(NAME, 
1
AS 
'
Name
' 
FROM    dbo.T_User   
 
id Name
2 李,四             
3 王,五             
4 赵六               
5 qq               
6 QQ                 

 

转载于:https://www.cnblogs.com/51net/archive/2013/04/04/2999724.html

你可能感兴趣的文章