【发布时间】:2013-08-14 22:39:41
【问题描述】:
在 SQL 中,我将一个表加入到自身中:
SELECT * FROM table AS a
LEFT JOIN table AS b
ON a.NAME = b.NAME
所以它会获取在另一个表的一行中出现的所有具有相同NAME 的行(也将返回同一行两次!)。
假设我想将结果保存到一个临时表中,比如:
SELECT * INTO ##temp_table FROM (
SELECT * FROM table AS a
LEFT JOIN table AS b
ON a.NAME = b.NAME
)
哦,亲爱的。 SQL 说:
The column 'NAME' was specified multiple times.
原因:SQL 只能在每个列名都是唯一的情况下才能创建表。
明显的解决方案:给“第二个表”中的每个列名一个别名。
我的问题是我正在使用的实际表有大约 40 列。为这些列中的每一列赋予别名似乎是在浪费时间。当然,我不需要 每个 列,因此可以删除其中的一些列,但现在决定我需要哪些列似乎也很浪费。
问题:有没有一种简单的方法可以重命名每一列?例如,我可以在每个列名后附加_2 或_a吗?
【问题讨论】:
-
您的问题的答案基本上是“否”。您可以将列列表放入Excel中,并使用Excel函数对其进行修改(您可以通过INFORMATION_SCHEMA.COLUMNS获取列表)。