我正在尝试加入PRId
的2个表。
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_AI
和SQL_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
答案 0 :(得分:2)
为两个字段添加collate子句,因为它不会影响比较操作本身,而是影响字段值。
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