Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Temukan bidang yang tidak digunakan (memiliki semua nol)

DECLARE @table NVARCHAR(512);
SET @table = N'dbo.tablename';

DECLARE @sql NVARCHAR(MAX);

SELECT @sql = N'';

SELECT @sql = @sql + QUOTENAME(name) 
     + ' = SUM(CASE WHEN ' + QUOTENAME(name) + ' IS NULL THEN 1 ELSE 0 END),'
  FROM sys.columns
  WHERE object_id = OBJECT_ID(@table)
  AND is_nullable = 1;

SELECT @sql = 'SELECT ' + @sql + ' Total_Count = COUNT(*)
  FROM ' + @table + ';';

EXEC sp_executesql @sql;

Setiap kolom yang keluar 0 memiliki semua nol (kecuali kolom Total_Count juga keluar 0, dalam hal ini tabel kosong). Perhatikan bahwa kueri ini akan cukup mahal di tabel besar.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah statistik yang mereferensikan kolom mencegah kolom itu dihapus?

  2. Apa Pendekatan Terbaik untuk Peningkatan Otomatis?

  3. Bagaimana cara mengekstrak substring khusus ini di SQL Server?

  4. Bagaimana cara mendapatkan jumlah duplikat Baris kolom DISTINCT sebagai kolom lain?

  5. Grup concat di SQL Server