【发布时间】:2013-12-30 11:29:56
【问题描述】:
我有一张桌子Business_Unit:
里面有一些值。
查询一:
select
business_unit_id,*
from
business_unit
order by
business_unit_id desc
当我查询这个时,我得到以下错误。
消息 209,第 16 级,状态 1,第 1 行
不明确的列名称“business_unit_id”。
为了解决这个问题,我将表的别名用作 bu,并在列前加上别名。
select
bu.business_unit_id, *
from
business_unit bu
order by
bu.business_unit_id desc
即使下面的查询也有效。
select
bu.business_unit_id, bu.*
from
business_unit bu
order by
bu.business_unit_id desc
我想知道,为什么它抛出错误 [business_unit_id],查询“查询 1”。这里没有歧义,我只有一张桌子。
你能解释一下吗?
问这个问题的原因。 我有一个 120 列的表(假设是 bigtable),现在,我想通过 90 列来订购它。我无法滚动并检查该值,因此我将 select 90thcolumn,* from bigtable order by 90thcolumn。
【问题讨论】:
-
你确定
Business_Unit是Table而不是View??? -
100% ,它是一张桌子 :)
-
好问题。即使这项工作,选择 col2,* from tbl1 order by tbl1.col2 .so 这有什么区别伙计们?你如何解释这个?
-
请看一下我已经更新了我的答案,并提供了更多解释,我希望这会清除乌云:)
-
对于我来说,如果我有一张大桌子,如果我想按第 90 列排序,当然,如果我不想滚动,我会将第 90 列作为选择查询中的第一列并按第一列排序。这是查询。选择 90thcolumn,* from bigtable order by 1 desc。(我再次从其中一个回复中得到答案)。谢谢大家。
标签: sql-server