SQL SERVER 查询时区分大小写的语法

时间:2022-06-01 18:41:52
[html]  view plain  copy
  1. --SELECT * FROM 表名 WHERE 列名 COLLATE Chinese_PRC_CS_AS ='筛选字符'    
  2. --SELECT * FROM 表名 WHERE 列名 COLLATE Chinese_PRC_CS_AS like '%筛选字符%'    
  3. --SELECT * FROM 表名 WHERE 列名 COLLATE Chinese_PRC_CS_AS in('筛选字符1','筛选字符2')  
  4.   
  5.   
  6. --执行以下代码查看效果  
  7. ;with dt as(  
  8. select 'aaaaa' columnname  
  9. union all  
  10. select 'AAAAA'  
  11. union all  
  12. select 'AAaaa'  
  13. )  
  14. --select * from dt where columnname like '%aaaaa%'--不区分大小写  
  15. select * from dt where columnname COLLATE Chinese_PRC_CS_AS like '%aaaaa%'  --区分大小写  


一些常用的SQL语法

[html]  view plain  copy
  1. --left join 一对多查询  
  2. select a.ProductID,a.ProductName,a.Spec,b.ProductID,b.ProductName,b.Spec from vw_Stock_CompanyProduct a  
  3. left join vw_Stock_CompanyProduct b on a.CompanyID=b.CompanyID and a.Spec COLLATE Chinese_PRC_CS_AS=b.Spec and b.sc_type=2 and b.IsEnable=1 and ((a.ProductName+'-冷镦')=b.ProductName OR (a.ProductName+'-热处理')=b.ProductName)  
  4. where a.CompanyID=344 and a.CPID=125818  
  5.   
  6.   
  7. --模块临时查询  
  8. ;with dt as(  
  9. select a.ProductID,a.ProductName,a.Spec,b.ProductID as ProductID_01,b.ProductName as ProductName_01,b.Spec as Spec_01 from vw_Stock_CompanyProduct a  
  10. left join vw_Stock_CompanyProduct b on a.CompanyID=b.CompanyID and a.Spec COLLATE Chinese_PRC_CS_AS=b.Spec and b.sc_type=2 and b.IsEnable=1 and ((a.ProductName+'-冷镦')=b.ProductName OR (a.ProductName+'-热处理')=b.ProductName)  
  11. where a.CompanyID=344 and a.CPID=125818  
  12. )  
  13. select * from dt  
  14.   
  15.   
  16. --CASE WHEN 判断语句模块  
  17. ;with dt01 as(  
  18. select a.ProductID,a.ProductName,a.Spec,b.ProductID as ProductID_01,b.ProductName as ProductName_01,b.Spec as Spec_01 from vw_Stock_CompanyProduct a  
  19. left join vw_Stock_CompanyProduct b on a.CompanyID=b.CompanyID and a.Spec COLLATE Chinese_PRC_CS_AS=b.Spec and b.sc_type=2 and b.IsEnable=1 and ((a.ProductName+'-冷镦')=b.ProductName OR (a.ProductName+'-热处理')=b.ProductName)  
  20. where a.CompanyID=344 and a.CPID=125818  
  21. )  
  22. select *,(CASE WHEN RIGHT(ProductName_01,3)='-冷镦' THEN 1401 WHEN RIGHT(ProductName_01,4)='-热处理' THEN 1402 END) as Step_ID from dt01  
  23.   
  24.   
  25.   
  26. --截取字符串LEFT,截取左边3个字符ABC  
  27. SELECT LEFT('ABCDEFG',3)  
  28.   
  29.   
  30. --截取字符串RIGHT,截取右边3个字符EFG  
  31. SELECT RIGHT('ABCDEFG',3)   

设置表内大小写敏感

SQL SERVER 查询时区分大小写的语法
1 ALTER TABLE 表名
2 ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
3 --不区分大小写
4
5
6 ALTER TABLE tb
7 ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
8 --区分大小写
SQL SERVER 查询时区分大小写的语法

 设置SQL脚本大小写不敏感

USE [master] 
GO
ALTER DATABASE [DatabaseName] COLLATE Chinese_PRC_CI_AI
GO

 

 设置大SQL脚本大小写敏感

USE [master] 
GO
ALTER DATABASE [DatabaseName] COLLATE Chinese_PRC_CS_AI
GO

 

 设置参考值


  _CI_AI   不区分大小写、不区分重音、不区分假名类型、不区分宽度       
  _CI_AI_WS   不区分大小写、不区分重音、不区分假名类型、区分宽度       
  _CI_AI_KS   不区分大小写、不区分重音、区分假名类型、不区分宽度       
  _CI_AI_KS_WS   不区分大小写、不区分重音、区分假名类型、区分宽度       
  _CI_AS   不区分大小写、区分重音、不区分假名类型、不区分宽度       
  _CI_AS_WS   不区分大小写、区分重音、   不区分假名类型、区分宽度       
  _CI_AS_KS   不区分大小写、区分重音、区分假名类型、不区分宽度       
  _CI_AS_KS_WS   不区分大小写、区分重音、区分假名类型、区分宽度       
  _CS_AI   区分大小写、不区分重音、   不区分假名类型、不区分宽度       
  _CS_AI_WS   区分大小写、不区分重音、不区分假名类型、区分宽度       
  _CS_AI_KS   区分大小写、不区分重音、区分假名类型、不区分宽度       
  _CS_AI_KS_WS   区分大小写、不区分重音、区分假名类型、区分宽度       
  _CS_AS   区分大小写、区分重音、不区分假名类型、不区分宽度       
  _CS_AS_WS   区分大小写、区分重音、不区分假名类型、区分宽度       
  _CS_AS_KS   区分大小写、区分重音、区分假名类型、不区分宽度       
  _CS_AS_KS_WS   区分大小写、区分重音、区分假名类型、区分宽度 

 

  *CS(Case-Sensitivity缩写):CS 指定区分大小写

   CI(Case-Insensitivity缩写):CI 指定不区分大小写。 

  常用的语言集为:Chinese_PRC_CI_AS

 

 举例分析
 
   Chinese_PRC_CS_AI_WS   

  前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。   

  排序规则的后半部份即后缀 含义:   

  _BIN 二进制排序   

  _CI(CS) 是否区分大小写,CI不区分,CS区分   

  _AI(AS) 是否区分重音,AI不区分,AS区分    

  _KI(KS) 是否区分假名类型,KI不区分,KS区分    

  _WI(WS) 是否区分宽度 WI不区分,WS区分 

  区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。  

  区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。  

  区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。   

  区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项