我遇到了一个似乎带回太多列的查询(是的,列,而不是行)。声明如下:
Select TOP 10 PERCENT
TempLegs.*,
TMWStateMilesByLeg.*
From
(
Select TOP 10
TempOrigin.stp_city as 'Origin Location'
from stops TempOrigin (NOLOCK)
Union
Select TOP 10
TempOrigin2.stp_city as 'Origin Location'
from stops TempOrigin2 (NOLOCK)
) As TempLegs,TMWStateMilesByLeg
当我运行此语句时,我的结果集不是“原点位置”的单个列,而是列出了停靠表中的所有列。这里发生了什么?
我唯一能想到的是
作为TempLegs,TMWStateMilesByLeg
语句对连接的两个部分进行别名,但我不确定,因为我从未在AS语句中看到过两个术语。
非常感谢任何帮助。
答案 0 :(得分:3)
这是旧式连接。
Select TOP 10 PERCENT /* <-- top without order by */
TempLegs.*
--,TMWStateMilesByLeg.*
From (
Select TOP 10 /* <-- top without order by */
TempOrigin.stp_city as 'Origin Location'
from stops TempOrigin --(NOLOCK)
Union /* <-- union instead of union all will return distinct results */
Select TOP 10 /* <-- top without order by */
TempOrigin2.stp_city as 'Origin Location'
from stops TempOrigin2 --(NOLOCK)
) As TempLegs --,TMWStateMilesByLeg
参考: