无法解决“之间的排序规则冲突”;SQL拉丁语通用CP1 CI AS;及;中国“中华人民共和国”CI“AS”;在等于运算中

无法解决“之间的排序规则冲突”;SQL拉丁语通用CP1 CI AS;及;中国“中华人民共和国”CI“AS”;在等于运算中,sql,sql-server,Sql,Sql Server,如果I内部连接b.strMachID上的tblMachine=tblMachine.strMachID 出现以下错误: 无法解决等于操作中“SQL拉丁1_General_CP1_CI_AS”和“Chinese_PRC_CI_AS”之间的排序规则冲突 这个错误是什么意思?这是我的问题 select distinct b.strCostCentreID , b.strPOSOnlineRefNo, strPayTypeCode, b.strRemarks as Agency, tblMachine

如果I
内部连接b.strMachID上的tblMachine=tblMachine.strMachID

出现以下错误:

无法解决等于操作中“SQL拉丁1_General_CP1_CI_AS”和“Chinese_PRC_CI_AS”之间的排序规则冲突

这个错误是什么意思?这是我的问题

select distinct b.strCostCentreID ,  b.strPOSOnlineRefNo, strPayTypeCode, b.strRemarks as Agency, tblMachine.strDesc As KName,
     (SUM(b.dblPaidAmt)) as RM   
     From tblCurrTrxMaster as b INNER JOIN tblMachine on b.strMachID = tblMachine.strMachID  
     WHERE  strPaymentMethod = '02' and (b.dtmCreated>='1/23/2020') AND (strTransStatus='01')
     GROUP BY b.strCostCentreID , b.strPOSOnlineRefNo, b.strPayTypeCode, b.strRemarks ,b.strMachID, tblMachine.strDesc

您可以强制使用排序规则

select distinct b.strCostCentreID ,  b.strPOSOnlineRefNo, strPayTypeCode, b.strRemarks as Agency, tblMachine.strDesc As KName,
     (SUM(b.dblPaidAmt)) as RM   
     From tblCurrTrxMaster as b INNER JOIN tblMachine 
    on b.strMachID  COLLATE SQL_Latin1_General_CP1_CI_AS= tblMachine.strMachID  COLLATE SQL_Latin1_General_CP1_CI_AS
     WHERE  strPaymentMethod = '02' and (b.dtmCreated>='1/23/2020') AND (strTransStatus='01')
     GROUP BY b.strCostCentreID , b.strPOSOnlineRefNo, b.strPayTypeCode, b.strRemarks ,b.strMachID, tblMachine.strDesc

这意味着您正试图与具有不同排序规则的字符串列进行比较。请参阅。理想情况下,您可以更改其中一个排序规则,使它们都相同,否则可能会导致性能问题。作为一个简单的修复方法,在查询中使用collate关键字更改其中一列的排序规则,以使它们匹配。是。我得到了它。非常感谢,我刚刚在Table Designer中删除了“Chinese_PRC_CI_AS”。除非您有充分的理由,否则最好通过您的组织使用相同的排序规则。这种对细节的关注对于避免这样的错误非常重要。以后很难更改排序规则。