2015-12-30 128 views

回答

1

如果你的意思是“我的表中有多少非空值有在某一列”:

SELECT 
    percentage=CASE WHEN (SELECT COUNT(*) FROM your_table)=0 
    THEN 
     NULL 
    ELSE 
     CAST((SELECT COUNT(*) FROM your_table WHERE your_column IS NOT NULL) AS FLOAT)/ 
     (SELECT COUNT(*) FROM your_table) 
    END 

如果全球的意思有多少非空列有在您的SQL Server中的所有表例如:

SELECT 
    percentage= 
    CAST((
    SELECT 
     COUNT(*) 
    FROM 
     INFORMATION_SCHEMA.COLUMNS 
    WHERE 
     IS_NULLABLE='NO' 
) AS FLOAT)/ 
    (
    SELECT 
     COUNT(*) 
    FROM 
     INFORMATION_SCHEMA.COLUMNS 
)