Non*_*eil 6 sql sql-server sybase
当尝试从 Sybase 到 Microsoft SQL 执行 OPENQUERY 时,我遇到错误:
通过 OPENQUERY 和 OPENROWSET 获取的结果集中不允许有重复的列名。列名“PatientID”重复。
我构建的查询基于相似的missionID 和病人ID 连接了2 个表。
例如:
PatID AdmID Loc PatID AdmID Doctor
1 5 NC 1 5 Smith
2 7 SC 2 7 Johnson
Run Code Online (Sandbox Code Playgroud)
当然,真正的查询包含的信息远不止这些。
有没有一种好方法可以重命名或删除 AdmID 和 PatID 列之一?
我尝试过:
SELECT * INTO #tempTable
ALTER #tempTable
DROP COLUMN PatID
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为 PatID 不明确。
我也尝试过:
SELECT firstTable.PatID as 'pID', * FROM...
Run Code Online (Sandbox Code Playgroud)
这也行不通。
您必须为两个重复列之一指定别名,并至少在其中一个表(您在其列上使用别名的表)的选择中显式指示特定列:
SELECT firstTable.PatID as 'pID', firstTable.column2, secondTable.* FROM...
Run Code Online (Sandbox Code Playgroud)
请注意,我仍然在第二个表上使用了通配符。
然而....
我会完全避免使用*通配符,并尝试始终准确指示您需要的列。