【问题标题】:How to use COLLATE in a JOIN in SQL如何在 SQL 的 JOIN 中使用 COLLATE
【发布时间】:2019-08-26 12:34:04
【问题描述】:

我正在尝试加入两个表,但出现此错误:

消息 468,第 16 级,状态 9,第 8 行 无法解决等于操作中“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AS”之间的排序规则冲突。

SELECT *

  FROM [FAEB].[dbo].[ExportaComisiones] AS f

  JOIN [zCredifiel].[dbo].[optPerson] AS p

  ON (p.vTreasuryId = f.RFC) COLLATE Latin1_General_CI_AS

【问题讨论】:

  • dbms 名称请
  • COLLATE ...移到要更改排序规则的列之后,即括号内(或完全保留它们,这里不需要它们)。

标签: sql sql-server join collation


【解决方案1】:

你需要collate一栏而不是两栏:

SELECT f.*, p.*
FROM [FAEB].[dbo].[ExportaComisiones] AS f JOIN 
     [zCredifiel].[dbo].[optPerson] AS p
     ON p.vTreasuryId COLLATE Latin1_General_CI_AS = f.RFC;

我不知道哪一列需要更改排序规则名称,但这将指导您如何显式更改排序规则名称。

但是,如果两列具有相同的排序规则名称,则无需更改排序规则。

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2010-11-26
    相关资源
    最近更新 更多