[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 라이센스를 따릅니다.