포스트

[DB] 특정 컬럼 제외하고 조회

R, python 등을 활용한다면 특정 컬럼을 제외하고 조회하는 것은 그리 어려운 방법은 아니다. 하지만 sql에서는 나머지 다른 컬럼을 다 열거하는 것 말고는 딱히 방법이 없다.

그래서 여기서는 다른 방법으로 특정 컬럼을 제외하고 조회하는 것을 알아보겠다.

임시 테이블을 활용


1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- #temptable 임시 테이블

SELECT * INTO #temptable FROM mytable;

ALTER TABLE #temptable DROP columnx  -- 제외할 컬럼명

SELECT * FROM #temptable 

DROP TABLE #temptable

-- 1. 모든 데이터를 임시 테이블에 삽입
-- 2. 임시 테이블에서 원하지 않는 컬럼을 DROP 
-- 3. 임시 테이블에서 데이터 가져오기
-- 4. 임시 테이블 삭제




변수 선언 활용


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
declare @cols varchar(max), @query varchar(max);
SELECT  @cols = STUFF
    (
        ( 
            SELECT DISTINCT '], [' + name
            FROM sys.columns
            where object_id = (
                select top 1 object_id from sys.objects
                where name = 'MyTable' -- 테이블
            )
            and name not in ('ColumnIDontWant1', 'ColumnIDontWant2') -- 제외할 컬럼
            FOR XML PATH('')
        ), 1, 2, ''
    ) + ']';

SELECT @query = 'select ' + @cols + ' from MyTable';  
EXEC (@query);




BigQuery에서


1
2
SELECT * EXCEPT(ColumnNameX, [ColumnNameY, ...])
FROM TableA
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.