【问题标题】:sql select column from except resultsql 从除结果之外的列中选择列
【发布时间】:2018-06-28 10:53:35
【问题描述】:

我尝试从除结果之外的结果中获取列,但即使我将 Select * 放在第一个选择中,也总是出现错误“')' 附近的语法不正确”。我在 SQL Management Studio 工作。我的代码看起来像

select ColumnResult from (
            select col1 as ColumnResult, col2 as Column2Result, col3 as Column3Result
            from SourceTable 
            except
            select col1 as ColumnResult, col2 as Column2Result, col3 as Column3Result
            from SourceTable2)

【问题讨论】:

标签: sql sql-server except


【解决方案1】:

你会得到错误,因为每个表都有自己的别名,所以这样做

select A.ColumnResult from (
                select col1 as ColumnResult, col2 as Column2Result, col3 as Column3Result
                from SourceTable 
                except
                select col1 as ColumnResult, col2 as Column2Result, col3 as Column3Result
                from SourceTable2) as A

【讨论】:

  • 这与我的回答有何不同?
【解决方案2】:

你需要给你的子查询一个别名:

select ColumnResult from (
            select col1 as ColumnResult, col2 as Column2Result, col3 as Column3Result
            from SourceTable 
            except
            select col1 as ColumnResult, col2 as Column2Result, col3 as Column3Result
            from SourceTable2) AS Src

【讨论】:

  • ANSI SQL 中不需要。
  • 我相信你的话。它确实符合错误描述。
  • 好像是 SQL Server。
  • @liquid 对 SO 表示感谢的最佳方式是接受答案 ;)
猜你喜欢
  • 1970-01-01
  • 2017-09-24
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多