SELECT CASE t1.[ORDINAL_POSITION] WHEN 1 THEN 'SELECT ' ELSE ' , ' end + ' count( distinct ['+ t1.[COLUMN_NAME] + '] ) as [Count_distinct_' + t1.[COLUMN_NAME] + '_' + CASE t1.[ORDINAL_POSITION] WHEN t2.[MAX_ORDINAL_POSITION] THEN ' from [' + t1.[TABLE_SCHEMA] + '].[' + t1.[TABLE_NAME] + '] ;' ELSE ' ' end FROM [INFORMATION_SCHEMA].[COLUMNS] t1 INNER JOIN ( SELECT [TABLE_NAME], [TABLE_SCHEMA], MAX([ORDINAL_POSITION]) AS MAX_ORDINAL_POSITION FROM [INFORMATION_SCHEMA].[COLUMNS] GROUP BY [TABLE_NAME], [TABLE_SCHEMA] )t2ON t1.[TABLE_NAME] = t2.[TABLE_NAME]AND t1.[TABLE_SCHEMA] = t2.[TABLE_SCHEMA]WHERE t1.[TABLE_NAME] = 'mytable'ORDER BY t1.[TABLE_NAME], t1.[TABLE_SCHEMA], t1.[ORDINAL_POSITION]
Jul 13
We walk in the dark places no others will enterWe stand on the bridge and no one may pass