繁体   English   中英

从表的所有列中选择所有都不为空的值

[英]Select all none null values from all columns in a table

我在逐列查看每个列中所有非空值的计数时遇到问题。 我认为问题在于如何获取列名。 在我试图选择每一列中所有值的最后一个select语句中,我只是获得列名与行数一样多的次数。 关于如何解决此问题的任何想法?

DECLARE @cnt INT = 1;

WHILE @cnt < (SELECT COUNT(*)
                FROM mySchema.INFORMATION_SCHEMA.COLUMNS
                WHERE table_name = 'tblName') + 1
BEGIN
    DECLARE @column varchar(9) = (select column_name
    FROM mySchema.INFORMATION_SCHEMA.COLUMNS
    WHERE table_name = 'tblName'
    AND ordinal_position = @cnt);

    SELECT @column 
        FROM [mySchema].[dbo].[tblName]
        WHERE @column is not null
        AND @column <> ''

        SET @cnt = @cnt + 1;
    END;

选择@variable只会返回一个变量值。 我相信您需要使用一些动态SQL。 也许像exec('select'+ @colname +'from'etc)这样的东西会为您工作(至少它将在MS SQL Server中工作)。

不确定,但为什么您不能直接喜欢

SELECT column1, column2,column3
    FROM [mySchema].[dbo].[tblName]
    WHERE column1 is not null
    AND column2 is not null
    AND column3 is not null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM