首页 > 其他分享 >解决equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS" 之间的排序规则冲突

解决equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS" 之间的排序规则冲突

时间:2024-07-15 15:43:30浏览次数:9  
标签:CI Chinese PRC COLLATE 规则 排序

背景:在语句执行过程中碰到equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS" 之间的排序规则冲突的报错时,可以用COLLATE定义和控制字符数据排序规则。

在 SQL Server 中,COLLATE 是用于定义和控制字符数据排序规则(collation)的关键字。排序规则影响字符串比较和排序的行为。以下是 COLLATE 的几种常见用法:

1. 定义列的排序规则

在创建表时,可以为字符数据列指定排序规则:

1 2 3 CREATE TABLE MyTable (     MyColumn NVARCHAR(100) COLLATE Chinese_PRC_CI_AS );

  

2. 修改列的排序规则

可以使用 ALTER TABLE 语句更改现有列的排序规则:

1 ALTER TABLE MyTable
2 ALTER COLUMN MyColumn NVARCHAR(100) COLLATE Chinese_PRC_CI_AS;

3. 查询时临时指定排序规则

在查询中,可以为特定列临时指定排序规则:

1 SELECT MyColumn COLLATE Chinese_PRC_CI_AS
2 FROM MyTable
3 WHERE MyColumn COLLATE Chinese_PRC_CI_AS = 'SomeValue';

4. 比较时指定排序规则

在比较两个字符串时,可以为其中之一或两者指定排序规则,以避免排序规则冲突:

SELECT *
FROM MyTable
WHERE MyColumn COLLATE Chinese_PRC_CI_AS = OtherColumn COLLATE Chinese_PRC_CI_AS;

5. 联合查询(UNION)时指定排序规则

在联合查询中,如果不同的查询部分有不同的排序规则,可以为相关列指定相同的排序规则:

1 SELECT MyColumn COLLATE Chinese_PRC_CI_AS
2 FROM MyTable1
3 UNION
4 SELECT MyColumn COLLATE Chinese_PRC_CI_AS
5 FROM MyTable2;

6. 定义数据库的默认排序规则

在创建数据库时,可以指定默认排序规则:

1 CREATE DATABASE MyDatabase
2 COLLATE Chinese_PRC_CI_AS;

7. 定义变量的排序规则

可以在声明字符串变量时指定排序规则:

1 DECLARE @MyVariable NVARCHAR(100) COLLATE Chinese_PRC_CI_AS;
2 SET @MyVariable = 'SomeValue';
常见的排序规则
排序规则通常由以下几个部分组成:
1区域设置(Locale):例如 Chinese_PRC。
2敏感性(Sensitivity):
○CI(Case Insensitive):不区分大小写。
○CS(Case Sensitive):区分大小写。
○AI(Accent Insensitive):不区分重音符号。
○AS(Accent Sensitive):区分重音符号。
○KS(Kana Sensitive):区分平假名和片假名。
○WS(Width Sensitive):区分全角和半角字符。
○BIN(Binary):二进制排序。
例如,Chinese_PRC_CI_AS 表示中国简体中文、不区分大小写但区分重音符号的排序规则。
通过 COLLATE 关键字,您可以在 SQL Server 中灵活地控制字符串比较和排序的行为,以满足不同应用场景的需求。

标签:CI,Chinese,PRC,COLLATE,规则,排序
From: https://www.cnblogs.com/travelman/p/18303284

相关文章

  • WAIC 2024,好city啊!
    7月4日,“以共商促共享•以善治促善智”为主题的2024世界人工智能大会暨人工智能全球治理高/级别会议(简称“WAIC2024”)在上海举办。天翼云携智算创新成果精彩亮相世博展览馆,全方位展现在人工智能领域的深厚实力。 智算领航,引领科技新方向AI时代,“云智一体”已成为行业共识,在“......
  • AI学习 | 概念解释 + Scikit-learn 的简单情况
    一些机器学习概念解释点击查看代码*机器学习:是AI的一个子集,不用人类显式编程,让计算机通过算法自行学习和改进*监督学习:有数据、有标签,告诉机器什么是什么,让机器来学习输入和输出的映射关系。比如:分类和回归(预测)*非监督学习:有数据没有标签,让机器自己寻找规律。比如:聚类......
  • Science Advances|用于肌电检测的柔性微针电极阵列(健康监测/柔性传感/柔性电子)
    2024年5月1日,美国南加州大学HangboZhao课题组在《ScienceAdvances》上发布了一篇题为“Highlystretchableandcustomizablemicroneedleelectrodearraysforintramuscularelectromyography”的论文。论文内容如下:一、摘要        可伸缩的三维穿透式微电极......
  • [COCI2015-2016#6] PAROVI 的题解
    题意选择一些\(n\)一下互质的二元组\(\{a,b\}\),求对于任意\(x\in\big[2,n\big]\)都不满足\(a,b<x\)和\(a,b\gex\)的个数。简化题意因为无解的情况只发生在所有的\(\{a,b\}\)之间没有多余的位置用于放置\(x\),所以题意可以抽象成这样:选择一些区间互质的区间\([a......
  • [COCI2006-2007#4] ZBRKA 的题解
    题目大意在一个长度为\(n\)的排列中找出逆序对数量恰好为\(c\)的排列总数,其中\(1\len\le10^3,1\lec\le10^4\)。思路考虑将\(1\)到\(n\)这些数从小到大一次填进去,因为每一次填入的数多是最大的,所以逆序对增加的数量只与其所在的位置相关,所以设计\(f_{i,j}\)表......
  • 15 CIG重量级监控
    目录1.dockerstats原生命令2.CIGCAdvisorInfluxDBGranfana3.安装部署4.Grafana配置4.1.添加数据源4.2.添加工作台grafana官网文档参考:Grafanadocumentation|Grafanadocumentationinfluxdb官网文档参考:https://docs.influxdata.com/influxdb/v2/install......
  • 2023 Henan Provincial Collegiate Programming Contest
    和零时加的队友打了一下,计算几何摆了,最优化摆了,adhoc摆了。A.小水獭游河南枚举前缀,是\(O(|\Sigma|)\)的,然后判断一下是不是回文串即可。B.ArtforRest昨天才做过这个套路的加强版。显然只用判断类似\(\max(a,b)<\min(b+1,c)\)的条件。暴力枚举是调和级数的。C.Toxel......
  • flutter pub get 的时候:A dependency specification must be a string or a mapping.
    想在pubspec.yaml文件中添加字体:报错了fonts:-family:MiaoZifonts:-asset:assets/fonts/MiaoZi-YunYingTi-2.ttfweight:500看了这篇文章解决了我原来是加在dependencies:flutter:sdk:flutter#新添加的依赖fonts:......
  • 六、Docker CI、CD
    文章目录6.1引言6.2CI介绍6.3实现持续集成6.3.1搭建Gitlab服务器6.1引言项目部署1、将项目通过maven进行编译打包2、将文件上传到指定的服务器中3、将war包放到tomcat的目录中4、通过Dockerfile将Tomcat和war包转成一个镜像,由DockerCompose......
  • OSPF基础实验(HCIA)
    一、实验拓扑二、实验需求1.除R4环回以外,其他所有设备的网段基于192.168.0/24划分2.全网启动OSPF协议,不能宣告R4环回3.R1-R3各存在一个环回4.R1-R3为区域0,R3-R4为区域1,R3的环回工作在区域15.全网可达,保证更新安全,减少路由条目数量,避免环路6.R1-R3之间,R3为DR,该网段无BD......