MSSQL 中“SQL_Latin1_General_CP1_CI_AS“ 和 “Chinese_PRC_CI_AS“ 之间的排序规则冲突

当在SQL查询中遇到'SQL_Latin1_General_CP1_CI_AS'和'Chinese_PRC_CI_AS'排序规则冲突时,可以使用显示转换方法解决。如在多表连接和Select语句中通过COLLATE指定所需排序规则。例如,SELECT * FROM A JOIN B ON A.Name COLLATE Chinese_PRC_CI_AS = B.Name 或 SELECT Name COLLATE Chinese_PRC_CI_AS FROM A。该问题是由于数据库间不同的排序规则设置导致的,若要永久解决,需在数据库级别修改排序规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL查询时候出现:无法解决 equal to 操作中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突问题,可以用显示转换的方法解决

COLLATE SQL_collation_name

SQL_collation_name 为SQL SERVE 排序规则名称

1、多表连接中修改排序规则方法

SELECT * FROM  A  JOIN   B ON A.Name COLLATE Chinese_PRC_CI_AS =B.Name

2、Select中修改排序规则的方法

SELECT Name COLLATE Chinese_PRC_CI_AS FROM A

产生这个问题主要的原因,是因为两个数据库的排序规则不同而导致的。如果需要彻底解决,需要直接在数据库中修改DB的排序规则。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值