下列查询为每列生成值( 最小值 ) :
SELECT select +COLUMN_NAME+ AS FieldName, (select cast(MIN( +COLUMN_NAME+ ) as varchar(8000)) from +const.tablename+ )
FROM INFORMATION_SCHEMA.COLUMNS c cross join
(select AllCurveNames as tablename) const
WHERE c.TABLE_NAME = const.tablename
然而, 这将为每行生成一个单独的查询。 要将它们合并起来, 您需要一个字符串聚合组合。 您可以在 SQL 服务器中这样做 :
declare @sql varchar(max);
SELECT @sql = (select select +COLUMN_NAME+ AS FieldName, (select cast(MIN( +COLUMN_NAME+ ) as varchar(8000)) from +const.tablename + ) union all
FROM INFORMATION_SCHEMA.COLUMNS c cross join
(select WHATEVER as tablename) const
WHERE c.TABLE_NAME = const.tablename
for xml path( )
);
select @sql = LEFT(@sql, len(@sql) - 9);
exec(@sql);