T-SQL - 从表中获取具有多个具有相同名称

时间:2016-02-16 15:18:33

标签: sql sql-server tsql

MS SQL 2014使用T-SQL

我有一个链接服务器到Oracle服务器,该服务器有多个表和视图,其中包含多个具有相同名称的列。列中的值包含相同的数据。

SELECT
SERVER_NAME,
SERVER_NAME,
SERVER_NAME,
IP_ADDRESS,
IP_ADDRESS,
IP_ADDRESS,
IP_ADDRESS,
PHY_LOCATION,
PHY_LOCATION,
PHY_LOCATION,
OS_VERSION,
OS_VERSION
FROM SVR_TABLE

我是否可以执行一个查询,它会从表中为我提供不同的列名?我试图避免进入每个表并手动将不同的列放入表中。

SELECT
SERVER_NAME,
IP_ADDRESS,
PHY_LOCATION,
OS_VERSION
INTO [SQL_SVR_DB].[dbo].[SVR_TABLE]
FROM [ORACLE_SVR]..[SCHEMA_NAME].[SVR_TABLE]

1 个答案:

答案 0 :(得分:0)

根据您提供的第二个查询,我认为您正在寻找的是别名

Wikipedia将SQL别名定义为:

  

"别名是SQL的一项功能,大多数人都支持,如果不是全部的话,   关系数据库管理系统(RDBMS)。别名提供   数据库管理员以及其他数据库用户   能够减少查询和制作所需的代码量   查询更容易理解。另外,别名可以用作   混淆技术来保护数据库字段的真实名称。"

您可以在此处详细了解:https://en.wikipedia.org/wiki/Alias_%28SQL%29

您正在寻找的查询需要写成:

SELECT      SERVER_NAME,
            IP_ADDRESS,
            PHY_LOCATION,
            OS_VERSION
FROM        [SQL_SVR_DB].[dbo].[SVR_TABLE] sqlTable
INNER JOIN  [ORACLE_SVR].[SCHEMA_NAME].[SVR_TABLE] oraTable
ON          sqlTable.ColumnName = oraTable.ColumnName