2014-09-29 82 views
0

我想基於sybase中列的絕對值對記錄進行排序。有人能讓我知道該怎麼做嗎?我在下面的查詢嘗試,但它會引發錯誤。如何按sybase中列的絕對值進行排序?

SELECT * FROM table_name ORDER BY ABS(COL_A) 

更新:表名失蹤查詢。添加它。

+1

你什麼錯誤? – Arun 2014-09-29 16:30:16

+0

必須先選擇絕對值,然後才能按它進行排序。另外,您的查詢沒有表名。 – 2014-09-29 16:30:47

+0

唯一真正缺少的是您正在選擇的TABLE名稱。 – DRapp 2014-09-29 16:34:54

回答

0

試試這個:

SELECT * 
FROM table 
ORDER BY ABS(COL_A) 
+0

'COL_A'如何不能在'select'列表中使用'select *'? – 2014-09-29 16:33:32

+0

@GordonLinoff你的權利,它不應該。我認爲這可能是一個奇怪的Sybase事情,但它不是。也許他只是缺少表名。在Sybase的文檔中「如果查詢的order by或group by子句包含不在select列表中的列,Adaptive Server會將這些列作爲隱藏列添加到正在處理的列中。order by或group by子句中列出的列是包括在不同行的測試中,要符合ANSI標準,請在選擇列表中包括按列或按列排序。「 – Arun 2014-09-29 16:41:11

+0

我正在執行命令的列是varchar類型。但它實際上只包含數值。它會繼續工作嗎?我想這是問題所在。 – chidori 2014-09-29 16:43:20

相關問題