0

我有 2 张桌子正在尝试加入PRId

SELECT LOT_NUMBER 
FROM   Domain.dbo.LOT_TABLE
JOIN   Domain.dbo.SELINAS 
ON     Domain.dbo.SELINAS.PRId = Domain.dbo.LOT_TABLE.PRId;

当我运行它时,它给了我以下错误:

无法解决等于操作中“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AI”之间的排序规则冲突。

添加COLLATE什么也不返回:

SELECT LOT_NUMBER 
FROM   Domain.dbo.LOT_TABLE
JOIN   Domain.dbo.SELINAS 
  ON   Domain.dbo.SELINAS.PRId = Domain.dbo.LOT_TABLE.PRId 
COLLATE DATABASE_DEFAULT;

我尝试添加Latin1_General_CI_AISQL_Latin1_General_CP1_CI_AS但它仍然没有返回任何内容。

如果我打开表格列并查看每一列的扩展属性,它们似乎都是SQL_Latin1_General_CP1_CI_AS.

这没有道理...

我添加了

d2rq:join "Domain.dbo.SELINAS.PRId COLLATE DATABASE_DEFAULT => Domain.dbo.LOT_TABLE.PRId COLLATE DATABASE_DEFAULT" ;

就像你们中的一个人建议的那样,它找不到Domain.dbo.LOT_TABLE.PRId

4

1 回答 1

2

为两个字段添加 collat​​e 子句,因为它不影响比较操作本身,而是影响字段值。

SELECT LOT_NUMBER 
FROM   Domain.dbo.LOT_TABLE
JOIN   Domain.dbo.SELINAS 
  ON   Domain.dbo.SELINAS.PRId COLLATE DATABASE_DEFAULT = Domain.dbo.LOT_TABLE.PRId COLLATE DATABASE_DEFAULT
于 2013-09-19T13:15:07.113 回答