Menemukan Kolom pada Tabel yang memiliki nilai NULL di SQLServer

salah satu hal yang perlu kita cek dalam melakukan data cleaning adalah mengurusi null value pada data.

bagaimana menghandle null value tentu tidak dibahas di blog ini, karena ane memang gak minat dan gak ada kemampuan :D, yang dibahas di blog ini adalah bagaimana cara kita menemukannya di hutan belantara database .

going basic

cara simple nya kan kita bisa pakai

SELECT count(*) FROM <TABEL> WHERE <KOLOM> IS NULL

dari query simple kayak gitu kita bisa tahu apa kah ada data yang NULL pada kolom tersebut.

masalah muncul kalau kita mau melakukan check lebih dari 1 kolom, dan tidak bermaksud menambah masalah mu, bagaimana kalau yang dicek lebih dari 1 tabel ?
beruntunglah nemu blog
https://www.daimto.com/sql-server-finding-columns-with-null-values/

 set nocount on
declare @columnName nvarchar(500)
declare @tableName nvarchar(500)
declare @select nvarchar(500)
declare @sql nvarchar(500)
-- check if the Temp table already exists
if OBJECT_ID('tempdb..#LocalTempTable') is null
Begin
CREATE TABLE #LocalTempTable(
TableName varchar(150),
ColumnName varchar(150))
end
else
begin
delete from #LocalTempTable;
end
-- Build a select for each of the columns in the database. That checks for nulls
DECLARE check_cursor CURSOR FOR
select column_name, table_name, concat(' Select ''',column_name,''',''',table_name,''[' from ',table_name,'] where [',COLUMN_NAME,'] is null')
from INFORMATION_SCHEMA.COLUMNS
WHERE table_name IN ('')
OPEN check_cursor
FETCH NEXT FROM check_cursor
INTO @columnName, @tableName,@select
WHILE @@FETCH_STATUS = 0
BEGIN
-- Insert it if there if it exists.
set @sql = 'insert into #LocalTempTable (ColumnName, TableName)' + @select
print @sql
-- Run the statment
exec( @sql)
FETCH NEXT FROM check_cursor
INTO @columnName, @tableName,@select
end
CLOSE check_cursor;
DEALLOCATE check_cursor;
select distinct ColumnName, TableName from #LocalTempTable

dengan query sakti ini kita bisa cek apakah ada data yang nilainya NULL untuk SEMUA kolom pada tabel yang kita inginkan..

itu aja sih, semoga bermanfaat

Leave a Comment