Sql server 自动为SELECT语句中的所有列生成别名

Sql server 自动为SELECT语句中的所有列生成别名,sql-server,excel,notepad++,Sql Server,Excel,Notepad++,我正在使用Microsoft Query将数据从MS SQL Server提取到Excel。我的许多表都有相同的列名,例如: [task].[active] [user].[active] [task].[name] [user].[name] 当我在Excel中透视时,只显示列名。pivot筛选器可能有多个称为“活动”的字段,这非常令人困惑 我想用它来自的表名为每一列加上别名,这样在过滤器中会显示“task\u active”和“user\u active”。我的Excel SELECT语

我正在使用Microsoft Query将数据从MS SQL Server提取到Excel。我的许多表都有相同的列名,例如:

[task].[active]
[user].[active]

[task].[name]
[user].[name]
当我在Excel中透视时,只显示列名。pivot筛选器可能有多个称为“活动”的字段,这非常令人困惑

我想用它来自的表名为每一列加上别名,这样在过滤器中会显示“task\u active”和“user\u active”。我的Excel SELECT语句是:

SELECT active AS task_active, name AS task_name FROM task...

是否有一种快速方法可以使用格式化工具将表名前置到别名?我有Apex SQL Refactor和记事本+,但我还没有找到一种不必再次手动键入所有列名的方法。

如果将resultset填充到datatable,然后将datatable填充到excel,则它会自动将重复列名更改为col1、col2等

这不是您的要求。您希望它是具体的

方法1
。创建具有所需列名的临时表

在#temp表中插入结果

返回#临时表结果集

方法2
:使用动态查询


你真正的疑问是什么样子的?

不,没有。通过使用信息模式表,在Excel中加载数据,然后构造查询,您可以非常轻松地构造查询。也许视图对此会有所帮助?@GordonLinoff谢谢,这是最简单的方法。我提取了INFORMATION_SCHEMA.COLUMNS表,使用Excel CONCAT()构建别名,并将它们复制到Notepad++来构建查询。你能不能把你的评论作为一个答案,这样我就可以标记它了。