我正在尝试做一些有点奇怪的事情,但无法找出完成它的正确方法。本质上,我试图提取所有表/视图和列,其中列名称就像某个字符串。除此之外,我想从该表/视图和列组合中提取 1 行数据。第二部分是我迷失的地方。我知道我可以使用下面的 select 语句提取必要的表/视图和列。
SELECT COLUMN_NAME AS 'ColumnName' ,TABLE_NAME AS 'TableName' FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE '%email%' ORDER BY TableName,ColumnName;
这样我就会得到类似下面的东西
|ColumnName |TableName | |emailAddress |all_emails | ....
但我想要得到这样的东西:
|ColumnName |TableName |Example | |emailAddress |all_emails |[email protected]| ....
有人可以提供任何见解吗?
我想不出一种简单的方法来在查询中执行此操作,但这里有一个选项......
将列和表的列表放入临时表中,并通过循环运行它们,使用动态 SQL 为每个表选择最大行。
我在下面添加了大量评论来解释它。