제목 그대로..입니다.
ms-sql 에서요
특정테이블에서
특정칼럼의 데이터가 처음부터 끝까지 다른 값은 없고 Null 만 있는 칼럼을 추출할수 있습니까?
즉, 아무것도 쓸모가 없는 칼럼명만 추출 하고 싶습니다.
제가 오라클만 써보고 이번에 처음으로 ms-sql을 써 보는데...
어떻게 하는지 한수 가르쳐 주십시요...
퇴근을 못하고 있습니다. 부탁 드립니다.
테스트 테이블
create table tblx(idx int identity,col1 char(10) default null,col2 char(10) default null,col3 char(10) default null)
insert into tblx default valuesinsert into tblx default valuesinsert into tblx default valuesinsert into tblx default valuesinsert into tblx default values
insert into tblx (col2) values ('a')insert into tblx (col2) values ('a')insert into tblx (col2) values ('a')insert into tblx (col1, col2) values ('','a')insert into tblx (col1, col2) values ('','a')insert into tblx (col1, col2) values ('','a')insert into tblx (col1, col2) values ('','a')
DECLARE find_null_col CURSORREAD_ONLYFOR select column_name from information_schema.columns where table_name = 'tblx'
create table #tblxx(colvalue int,colname varchar(100))declare @sql varchar(1000)
DECLARE @colname varchar(40)OPEN find_null_col
FETCH NEXT FROM find_null_col INTO @colnameWHILE (@@fetch_status <> -1)BEGIN IF (@@fetch_status <> -2) BEGIN set @sql = 'insert into #tblxx select count(' + @colname + '), ''' + @colname + ''' from tblx' print @sql exec (@sql) END FETCH NEXT FROM find_null_col INTO @colnameEND
CLOSE find_null_colDEALLOCATE find_null_col-- select * from #tblxx
select * from #tblxx where colvalue = 0drop table #tblxx
colvalue colname ----------- ---------------------------------------------------------------------------------------------------- 0 col3
(1 row(s) affected)
이걸 응용해서 하시면 테이블 별로 다 찾을 수 있을겁니다.
아직 퇴근 안하셨을라나 모르겠네요 ^^; 아까 문제를 잘못 읽어서리
^-^
컬럼이 모두 널인 튜플찾기
select * from tblx where col1 is null and col2 is null and col3 is null
으하하 감사합니다...^^
아직 해보진 않았는데...^^
지금 바로 해봐야겠네요...흐흐흐
복받으실꺼에요...^^
늦지 않게 풀어 다행입니다. ^^;