2014-09-29 102 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

相关问题