2017-05-23 3 views
1

너무 많은 열 (예, 열, 행이 아닌)을 다시 가져 오는 쿼리를 통해 실행했습니다. 나는이 문장을 실행하면 내 결과 집합 '원점 위치'의 단일 열 아니지만, 대신 정지 테이블의 모든 열을 나열 T-SQL : 쿼리에서 너무 많은 열을 다시 가져옵니다.

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

도트 성급 표기법을 사용하는 지정된 테이블의 모든 열을 표시하는 T-SQL을 알려줍니다. 따라서 TempLegs. *를 사용하면 원하는 단일 열을 얻을 수 있지만 ", TMWStateMilesByLeg. *"는 해당 테이블의 모든 열을 제공합니다 (그 중 무엇인지 또는 쿼리에 어떤 영향을 주는지 모릅니다) . – Stilgar

답변

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 

참조 : (. *)

+0

세상에. 고마워, 나는 결코 그것을 이해하지 못했을 것이다. 나는이 SQL을 쓰지 않았고, 다른 시스템에서 숫자를 조화 시키려고 가로 챘다. 그리고 예, NOLOCK은 어디 에나 있습니다! –

+0

@FlexFiend 도와 드리겠습니다! – SqlZim