SQL Server子查询排序规则冲突

时间:2017-05-16 05:49:50

标签: sql collation sql-server-2014-express

我的服务器是Latin1_General_CI_AS

我的数据库是Latin1_General_CI_AS

我的桌子是Latin1_General_CI_AS

我的专栏是Latin1_General_CI_AS

我的查询是:

SELECT Product, [Bradken Part Number], Drawing,
   (SELECT TOP (1) Location FROM dbo.Events_Table AS e WHERE
   (Product = dbo.JobSummaryView1.Product) 
   ORDER BY DateTime1 DESC) AS Expr1
FROM dbo.JobSummaryView1

但是当我运行这个查询时,它说SQL_Latin1_General_CP1_CI_AS和Latin1_General_CI_AS之间存在整理混淆!

怎么会这样? 我猜测子查询是使用SQL_Latin1_General_CP1_CI_AS,但为什么?

我知道我可以通过在SELECT中指定排序规则来修复它,但我宁愿阻止它发生。

我正在使用SQL Server Express 2014

3 个答案:

答案 0 :(得分:0)

试试这个。

...WHERE fieldname COLLATE DATABASE_DEFAULT = otherfieldname COLLATE DATABASE_DEFAULT

答案 1 :(得分:0)

对不起,我的坏......

正在加入的视图与另一个实际上是SQL_Latin1_General_CP1_CI_AS

的数据库有关

我在该视图中添加了COLLATE,现在在我发布的查询中不需要任何COLLATES。

抱歉:$

答案 2 :(得分:0)

<强>答案

如果您可以诊断视图。条件&#34; Product = dbo.JobSummaryView1.Product&#34; 必须应用单独的排序规则。