DISTINCT和ORDER BY查询在SQL Server 2012中不起作用

时间:2014-05-23 12:39:25

标签: sql sql-server

我们已将数据库从MS SQL 2008迁移到SQL2012。 迁移后,某些查询无效。 下面的查询是使用SQL2008和SQL2000,但不适用于SQL2012

SELECT DISTINCT Field1, Field1+ ' - ' + Field1 as Field1 FROM TABLE ORDER BY Field1

Msg 209,Level 16,State 1,Line 1 不明确的列名'MCH_GROUP'。

我知道我们可以修改查询但我们有很多应用程序。 我认为在sql 2012上应该有一个路径或设置来执行这个查询而没有任何错误。

4 个答案:

答案 0 :(得分:2)

错误来自order by子句。 服务器无法区分两个Field1列。 请为第二栏提供不同的名称。

SELECT      DISTINCT Field1, 
            Field1+ ' - ' + Field1 as Field2 
FROM        TABLE 
ORDER BY    Field1

Another Eg:
SELECT      DISTINCT [FirstName], 
            [FirstName] + ' - ' + [FirstName]  As [TwiceFirstName]
FROM        [dbo].[DimCustomer]
ORDER BY    [FirstName]

答案 1 :(得分:0)

SELECT DISTINCT Field1, Field1+ ' - ' + Field1 as Field2 FROM TABLE ORDER BY Field1

您调用了2个相同的字段,然后您通过...来混淆订单

答案 2 :(得分:0)

试试这个,

SELECT DISTINCT Field1, Field1+ ' - ' + Field1 as CalcualtedField FROM TABLE ORDER BY Field1

答案 3 :(得分:0)

如果绝对无法更改查询(您应该这样做),请将数据库的兼容级别设置为SQL2000。右键单击数据库,属性,选项,将Compatibility level设置为SQL Server 2000 (80)