2012-06-04 1 views
0

한 열을 변환하고 명시 적으로 명명하지 않고 다른 열을 참조 할 수있는 방법이 있습니까?SELECT *의 변형 - 명시 적으로 참조 된 열을 제외한 모든 열

일반적으로 내가 이런 짓을 했을까 : 나는 완벽한 세상에서 무엇을 할 수 있는지

SELECT 
     ,[Id] 
     ,[Name] 
     ,CONVERT(VARCHAR(10),[CreateDate], 104) as [CreateDate] 
    FROM Customers 

은 다음과 같습니다

SELECT 
     * 
     ,CONVERT(VARCHAR(10),[CreateDate], 104) as [CreateDate] 
    FROM Customers 

어디 * 쿼리에서 명시 적으로 언급되지 않은 모든 열을 의미 할 것입니다.

이렇게 할 수있는 키워드가 있습니까? 아니면 다른 방법이 있습니까? 테이블을 변경하거나 뷰를 만들거나 SP 또는 다른 것을 쿼리 할 수 ​​있어야합니다.

답변

2

당신이 쿼리를 제공 목록을 기반으로 sys.columns에서 동적 SQL을 구축하고 싶어하지 않는 "이 일을 제외한 모든 열"말을 프로그래밍 방법이 없다 (그것은 것 목록을 도출하기가 매우 어려운 특히 조인, where 절 등을 소개 할 때 쿼리의 참조 된 열을 동적으로 포함 할 수 있습니다.

그러나 모두 입력하지 않고도이 작업을 수행하는 아주 간단한 방법이 있습니다. Object Explorer에서 테이블을 확장하고 "Columns"노드를 쿼리 편집기 창으로 끌어 오면됩니다. 이제 목록에서 CreateDate 열을 제거하면됩니다.

0

필자가 필드의 긴 목록을 입력하지 않으려면 편집기에서 테이블 이름을 선택한 다음 alt-f1을 누르십시오. 그것은 "sp_help table"을 타이핑하는 것과 같은 일입니다. 해당 테이블의 모든 열 이름을 사용하여 결과 집합을 가져옵니다. 그 목록을 편집자에게 복사하고 쉼표를 추가합니다.

쉬운 방법은 검색을 사용하여 모든 라인의 마지막에 쉼표를 추가하고 편집기에서 대체 : 열 이름

  1. 선택 만이 줄을.
  2. "사용"을 선택하고 드롭 다운 목록에서 "정규 표현식"을 선택하십시오. 타입 $ "어떤 찾기"에서
  3. 에서
  4. (달러 기호는 라인의 끝을 의미)를 입력 선택한 각 행의 마지막에 쉼표를 추가합니다

을 "바꿀 내용".

또 다른 방법은 개체 탐색기에서 테이블을 마우스 오른쪽 단추로 클릭하고 "톱 1000 선택"옵션을 클릭하여 다른 텍스트 편집기 창에서 스크립트를 만듭니다.

+1

이 두 가지 모두 "열"노드를 편집기로 끌어 놓는 것보다 훨씬 지루한 것처럼 보입니다. :-) –

+0

@AaronBertrand, 당신 말이 맞아요, 당신이 열 노드를 끌 수 있다는 것을 몰랐습니다 :) 나는 매일 새로운 것을 배웁니다! –

관련 문제