sql - 左连接ON非空列不能选择非空列

标签 sql sql-server-2005

每个表都有一个列 RECNUM。它们是(十进制(28,0),不为空)。这就是我加入的地方。我想选择 CAUNIT 中的 DESC 列。它是(varchar(28,0),不为空)。当我运行查询时,我得到:

消息 156,级别 15,状态 1,第 1 行 关键字“DESC”附近的语法不正确。以下是我的查询:

SELECT CDCLSVC.UNIT_ID,CAUNIT.DESC
FROM CDCLSVC
LEFT JOIN CAUNIT
ON CDCLSVC.RECNUM = CAUNIT.RECNUM

最佳答案

问题出在 DESC 列上。在 SQL Server 中,它是 reserved keyword :

Microsoft SQL Server uses reserved keywords for defining, manipulating, and accessing databases. Reserved keywords are part of the grammar of the Transact-SQL language that is used by SQL Server to parse and understand Transact-SQL statements and batches. Although it is syntactically possible to use SQL Server reserved keywords as identifiers and object names in Transact-SQL scripts, you can do this only by using delimited identifiers.

可能的解决方案:

  1. 重命名列,例如描述
  2. []引用它

您还可以使用别名来避免输入完整的表名称:

SELECT cd.UNIT_ID,ca.[DESC]
FROM CDCLSVC cd 
LEFT JOIN CAUNIT ca
ON cd.RECNUM = ca.RECNUM

关于sql - 左连接ON非空列不能选择非空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36486760/

相关文章:

sql - 获取要显示在与其相关的列旁边的列列表

sql-server-2005 - SQL Server : How to tell if a database is a system database?

php - Laravel 关系重新加载

SQL:仅当该单元格具有给定 ID 的最大值时才选择一行

mysql - 如何优化搜索SQL查询?

C# SqlCommand - 不能为列名使用参数,如何解决?

asp.net - 如何创建/使用 MembershipProvider?

sql - Rails - has_one 关系 : scopes for associated and non-associated objects

sql - 多个表中的唯一 ID [MySQL]

sql-server-2005 - SQL Server 2005 : natural sort order for 2-columns tables with unique constraint