[SQL] 어떻게 SELECT 쿼리에서 열을 제외하려면?
SQL어떻게 SELECT 쿼리에서 열을 제외하려면?
나는 테이블의 100 열이 나는 특정 일을 제외하고 99 열을 나열합니다.
어떻게 그 열 이름을 제외하려면?
해결법
-
==============================
1.
SELECT column_1, column_2, column_3, /* ...the list of columns 4-97, not shown in this example... */, column_98, column_99 FROM table
(아마도 디자인)이 작업을 수행하는 더 쉬운 방법이 있습니다 : 특별히 검색하려는 각 열에 나열해야합니다.
이 쓰기에 번거 로움 비록,이 실제로 좋은 일이 : (성능과 유지 보수의 이유로) 생산 코드에 SELECT * 말라고 사용 - 참조 예를 이 질문.
-
==============================
2.자습서 D 관계형 데이터베이스 쿼리 언어는 투영 ALL을 사용하여 제거 할 속성의 표현 될 수 있도록 않지만 그러나이 작업을 수행 할 수 있도록 SQL에서 이러한 상응하는 구문은 존재하지 않는다. 명시 적으로 당신이 원하는 특정 것들을 나열해야합니다.
자습서 D 관계형 데이터베이스 쿼리 언어는 투영 ALL을 사용하여 제거 할 속성의 표현 될 수 있도록 않지만 그러나이 작업을 수행 할 수 있도록 SQL에서 이러한 상응하는 구문은 존재하지 않는다. 명시 적으로 당신이 원하는 특정 것들을 나열해야합니다.
당신은 일반적으로 열이 같은 설정을해야하는 경우는보기를 사용할 수 있습니다.
-
==============================
3.당신은 할 수 없습니다.
당신은 할 수 없습니다.
테이블의 모든 컬럼을 통해 일부 절차의 의지 루프 (같은 오라클의 all_tabs_columns 사전 뷰는 모든 테이블의 모든 열을 나열)를 선택 C1, C2 (C-3)의 질의를 당신 형성 ... - 이론적으로, 당신은 여기에 동적 SQL을 포함 할 수 탭에서 C99,하지만 난 강력하게이 일을 당신을 낙담. 당신에게 여러 줄의 코드를 저장하지만, 유지하기가 어렵게됩니다. :)
-
==============================
4.이 시도.
이 시도.
DROP TABLE #MY_TEMP_TABLE CREATE TABLE #MY_TEMP_TABLE ( Column_1 int NULL, Column_2 varchar(10) NULL, Column_3 datetime NULL ) INSERT INTO #MY_TEMP_TABLE(Column_1, Column_2, Column_3) SELECT 1, 'a', GETDATE() UNION SELECT 2, 'b', GETDATE() UNION SELECT 3, 'c', GETDATE() UNION SELECT 4, 'd', GETDATE() DECLARE @dSQL nvarchar(1000) SELECT @dSQL = 'SELECT TOP 10 ' SELECT @dSQL = @dSQL + LEFT(nst.ColumnList, LEN(nst.ColumnList)-1) --AS 'List' FROM (SELECT so.id FROM TEMPDB..SYSOBJECTS so WHERE so.name LIKE '#MY_TEMP_TABLE%' AND so.type = 'u') so CROSS APPLY (SELECT sc.Name + ', ' FROM TEMPDB..SYSCOLUMNS sc WHERE sc.id = so.id AND sc.colid <> 3 FOR XML PATH('')) nst (ColumnList) SELECT @dSQL = @dSQL + ' FROM #MY_TEMP_TABLE' EXEC sp_executesql @dSQL
-
==============================
5.더 빠른 쿼리 솔루션! 굵은 텍스트에서 제거 할 테이블 이름과 열 이름을 추가합니다. 제거 할 같이 많은 분야로 추가 할 수 있습니다.
더 빠른 쿼리 솔루션! 굵은 텍스트에서 제거 할 테이블 이름과 열 이름을 추가합니다. 제거 할 같이 많은 분야로 추가 할 수 있습니다.
DECLARE @query nvarchar(max)=(SELECT string_agg(COLUMN_NAME,',') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='YOURTABLENAME' AND COLUMN_NAME NOT IN ('REMOVEDCOLOUMN',.........)) SET @query ='select '+@query+' FROM YOURTABLENAME' EXEC sp_executesql @query;
from https://stackoverflow.com/questions/3650689/how-to-exclude-a-column-from-select-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] phpMyAdmin에 - 총 기록 횟수에 따라 다름 (0) | 2020.06.16 |
---|---|
[SQL] 테이블 출력 매개 변수를 사용하여 저장 프로 시저를 만들 수 없습니다 (0) | 2020.06.16 |
[SQL] SQL 주입을 감지하는 정규 표현식 (0) | 2020.06.16 |
[SQL] SQL Server의 텍스트에서 추출 번호 (0) | 2020.06.16 |
[SQL] 합니까 MS 액세스 (2003) 저장 프로 시저에 비해 아무것도. 나는 MS의 acceess에서 복잡한 쿼리를 실행하려면 (0) | 2020.06.16 |