我已经从表中将列名称加载到名为#COLUMN_NAMES
的临时表中。我想建立一个while循环,通过我在下面创建的#Data_Quality_Check
表中传递临时表中的每一行。如何使用SQL Server 2014构建WHILE循环
当前在我的表#Column_names
中有54行column_names。理想情况下,我希望让while循环处理每个变量,并将输出放入#Data_Quality_Check
表中。
if object_id('tempdb..#COLUMN_NAMES') is not null
drop table #COLUMN_NAMES
SELECT COLUMN_NAME AS Column_Names
INTO #COLUMN_NAMES
FROM information_schema.columns
WHERE table_name = 'ssrs_sourcedata'
----- >>>> !!!!!! INSERT CODE TO BUILD WHILE LOOP !!!!
if object_id('tempdb..#DATA_QUALITY_CHECK') is not null
drop table #DATA_QUALITY_CHECK
SELECT
periodenddate,
'@Column_Name' AS Label,
MIN(@Column_Name) AS Min_Value,
MAX(@Column_Name) AS Max_Value,
SUM(@Column_Name) AS Sum_Value,
AVG(@Column_Name) AS Avg_Value,
SUM(Case when @Column_Name IS NULL THEN 1 ELSE 0 END) AS Null_Count,
SUM(Case when len(cast(@Column_Name AS VARCHAR)) = 0 THEN 1 ELSE 0 END) AS Space_Count,
MAX(len(cast(@Column_Name AS VARCHAR))) AS max_length,
MIN(len(cast(@Column_Name AS VARCHAR))) AS min_length
INTO
#DATA_QUALITY_CHECK
FROM
dbcrms.report.ssrs_sourcedata
WHERE
periodenddate = '2017-06-30'
GROUP BY
periodenddate
看起来可能是UDF的一个好例子。 –