一尘不染

如何删除/重命名SQL中的重复列(不重复行)

sql

尝试从Sybase到Microsoft SQL进行OPENQUERY时,我遇到错误:

通过OPENQUERY和OPENROWSET获得的结果集中不允许重复的列名。列名称“ PatientID”是重复的。

我建立的查询基于相似的entryID和PatientID联接了2个表。

例如:

PatID   AdmID   Loc  PatID  AdmID   Doctor 
1         5      NC    1      5      Smith 
2         7      SC    2      7      Johnson

当然,真正的查询不仅包含更多信息。

是否有重命名或删除AdmID和PatID列之一的好方法?

我尝试过:

SELECT * INTO #tempTable
ALTER #tempTable
DROP COLUMN PatID

由于PatID不明确,因此无法使用。

我也尝试过:

SELECT firstTable.PatID as 'pID', * FROM...

这也不起作用。


阅读 190

收藏
2021-03-08

共1个答案

一尘不染

您必须为两个重复的列之一加别名,并至少在其中一个表(在该列上使用别名的那一个)中明确指出选择中的特定列:

 SELECT firstTable.PatID as 'pID', firstTable.column2, secondTable.* FROM...

注意,我仍然在secondTable上使用通配符。

然而....

我会避免*完全使用通配符,并尝试始终始终准确指示您需要的列。

2021-03-08