[英]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.