【发布时间】:2015-06-23 01:40:21
【问题描述】:
我在逐列遍历并获取每列中所有非空值的计数时遇到问题。我认为问题是我如何获取列名。在我试图选择每列中的所有值的最后一个选择语句中,我只是获得与行数一样多的列名。关于如何解决这个问题的任何想法?
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;
【问题讨论】: