Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 从多个数据库中选择*并从结果中排除一列_Sql Server - Fatal编程技术网

Sql server 从多个数据库中选择*并从结果中排除一列

Sql server 从多个数据库中选择*并从结果中排除一列,sql-server,Sql Server,如前所述,我有3个(或更多)数据库,正在运行以下查询: SELECT * FROM [dbo].[FeatureVector] f, [dbo].[Defect] d,[dbo].DefectClass c WHERE f.DefectID = d.DefectID AND f.DefectMapID = d.DefectMapID AND d.GaugeID = d.GaugeID AND d.DefectStatus = 5 AND c.ClassID = d.Cl

如前所述,我有3个(或更多)数据库,正在运行以下查询:

SELECT * 
FROM [dbo].[FeatureVector] f, [dbo].[Defect] d,[dbo].DefectClass c
WHERE f.DefectID = d.DefectID 
  AND f.DefectMapID = d.DefectMapID 
  AND d.GaugeID = d.GaugeID 
  AND d.DefectStatus = 5 
  AND c.ClassID = d.ClassID 
  AND f.Feature0 IS NOT NULL 
我想从结果中排除一列,比如XY,我尝试过:

SELECT * EXCEPT "XY"
...


显式指定列,而不是使用*?不管怎么说,这是最佳实践。。。您真的不应该在任何地方使用*anywhere,因为它会使代码变得脆弱

明确指定列,而不是使用*?不管怎么说,这是最佳实践。。。确实不应该在任何地方使用*anywhere,因为它会使代码变得脆弱

创建一个视图,在该视图中可以显式指定列名,然后在SELECT查询中使用该视图


另外,在SELECT查询中使用以逗号分隔的表也是一种不好的做法,您应该改用标准联接。

创建一个视图,您可以在其中显式指定列名,然后在SELECT查询中使用该视图


另外,在SELECT查询中使用以逗号分隔的表也是一种不好的做法,您应该改用标准联接。

所以请从sys.columns中选择*并复制和粘贴它们!遗憾的是,没有一种更简单的方法可以做到这一点——正如我提到的,无论如何,您都应该显式地声明它们,因为其他一些原因……您可以将“列”节点从SSMS中的对象资源管理器拖到查询窗口中,它将自动为您提供列分隔的列列表。但是我会考虑把你的桌子分成更小的桌子,因为一个600列(非常宽)的桌子会非常糟糕的表现…在SQL内部文件中查找扩展数据块和行,这将导致性能下降。请从sys.columns中选择*,然后复制并粘贴它们!遗憾的是,没有一种更简单的方法可以做到这一点——正如我提到的,无论如何,您都应该显式地声明它们,因为其他一些原因……您可以将“列”节点从SSMS中的对象资源管理器拖到查询窗口中,它将自动为您提供列分隔的列列表。但是我会考虑把你的桌子分成更小的桌子,因为一个600列(非常宽)的桌子会非常糟糕的表现…在SQL内部文件中查找扩展数据块和行,这将导致性能下降-在ANSI-92 SQL标准(25年前)中,旧样式的逗号分隔表样式被正确的ANSI
JOIN
语法所取代不鼓励使用它,复制粘贴excel中的所有列,并使用transposewhat about
select*从现有表转换为新表
,然后
alter table newTable drop colname
最后
select*从新表
,您的问题解决了吗?@ahmedabdelqader-您建议复制整个表以避免写出列列表?我的天啊,在ANSI-92 SQL标准中(25年前),老式的逗号分隔表样式被正确的ANSI
JOIN
语法所取代不鼓励使用它,复制粘贴excel中的所有列,并使用transposewhat about
select*从现有表转换为新表
,然后
alter table newTable drop colname
最后
select*从新表
,您的问题解决了吗?@ahmedabdelqader-您建议复制整个表以避免写出列列表?天哪
SELECT * DROP "XY"
...