按列表排序的列必须是唯一的sql order by

时间:2014-11-08 20:32:36

标签: sql sql-order-by

我正在尝试解决一些已经创建的软件上的错误,我有以下存储过程:

SELECT [ART_NO],[QTY],[DUE_DATE],make=CASE make WHEN 'BANER' THEN 'BANER' Else ' ' + make END, [PRODUCT],[PRICE],[DETAIL],[COLOUR],[RS1],[RS2],[RS3],[RS4],[RS5],[RS6],[RS7],[RS8],[RS9],[RS10],[RS11],[RS12] FROM [DBKular].[dbo].[INVOISTK] where make != '' order by make,  [DUE_Date],[MAKE] asc

当我运行查询时,我收到以下错误:在列表中按顺序多次指定了一列。按列表排列的列必须是唯一的。

我被告知这个以前一直在工作,所以我不确定为什么会发生这种情况,我已经尝试删除make或[MAKE] asc但是它没有返回预期的数据。有什么想法发生了什么?

2 个答案:

答案 0 :(得分:2)

这是您的order by

order by make, [DUE_Date], [MAKE] asc

您已指定make两次。所以,这完全等同于:

order by make, [DUE_Date]

答案 1 :(得分:1)

不返回预期的数据是一个逻辑错误,这与语法错误不同。您必须从make中删除[MAKE] ascorder by,以便查询可以运行。从那里,你可以解决你的逻辑错误。