【发布时间】:2016-12-09 13:03:32
【问题描述】:
如何在 SQL 中的计算字段上使用 order by?
select a.Customer
,a.PlanTo
,a.Dollar01
,a.Dollar02
,a.Dollar03
,a.Dollar04
,a.Dollar05
,a.Dollar06
,a.Dollar07
,a.Dollar08
,a.Dollar09
,a.Dollar10
,a.Dollar11
,a.Dollar12
,(CAST(a.Dollar01 as decimal) + CAST(a.Dollar02 as decimal)
+ CAST(a.Dollar03 as decimal) + CAST(a.Dollar04 as decimal)
+ CAST(a.Dollar05 as decimal) + CAST(a.Dollar06 as decimal)
+ CAST(a.Dollar07 as decimal) + CAST(a.Dollar08 as decimal)
+ CAST(a.Dollar09 as decimal) + CAST(a.Dollar10 as decimal)
+ CAST(a.Dollar11 as decimal) + CAST(a.Dollar12 as decimal)) as TOTAL1
from MDM_STAT.sds.SMarginText a
where a.salesyear = '2016'
order by a.total1
这给了我 'Total1' 列不存在,但正如你所见,我已经创建了它,并且如果我不使用 order by 子句,它正在工作。
【问题讨论】:
-
删除别名
a.-- 试试order by total1... -
a.total1不存在,因为 SQL Server 将在SMarginText中查找该列,但ORDER BY TOTAL1;可以正常工作。 -
(1) 格式化您的代码和 (2) 明确(标记)您实际使用的 DBMS - 是 PostgreSQL 还是 SQL Server?
-
@AaronBertrand 谢谢.. 现在可以使用了。还删除了 postgresql 标签
标签: sql sql-server-2008 tsql select sql-order-by