【问题标题】:Alias For Column with Spaces?带空格的列的别名?
【发布时间】:2015-08-25 03:26:55
【问题描述】:

我需要一个包含 3 个表和 2 个内部联接的查询。我的 SELECT 语句中的一个列名包含一个空格(现有数据库),所以它看起来像:

SELECT tblCar.Purchase Price AS Price

SQL 当然不喜欢这个空间。我试过括号[tblCar.Purchase Price],单引号和双引号"tblCar.Purchase Price",还有tblCar.[Purchase Price],但都没有。

任何想法如何在此 SELECT 语句中处理带有空格的列名?

【问题讨论】:

  • [tblCar].[Purchase Price] 在 MS SQL 中为我工作。
  • 是 SQL Server 吗?哪个版本?
  • 我做了以下SqlFiddletblCar.[Purchase Price] 工作正常。
  • "tblCar"."Purchase Price",ANSI SQL,即更便携。也应该适用于 MS SQL。

标签: c# sql asp.net


【解决方案1】:

当您执行以下操作时,每个单元都需要放在单独的方括号中:

[tblCar.Purchase Price]

它认为这是完整的列名,而是尝试使用 [tblCar].[Purchase Price]。查看以下链接了解更多详情:

How do you deal with blank spaces in column names in SQL Server?

sql server:what do brackets mean around column name?

How can I reference a column with a space in the name?

事实上,表名不需要方括号,只有带空格的列名需要方括号,所以这也可以:

tblCar.[Purchase Price]

【讨论】:

    【解决方案2】:

    在您的情况下,如果您使用的是 SQL SERVER,您可以这样做,将名称括在方括号中。

    但是,如果可能,最好避免名称中的空格

    SELECT [tblCar].[Purchase Price] AS Price
    

    此外,如果有人在 MySql 中遇到此问题,则可以通过正确引用您的列名来解决此问题:

    SELECT `tblCar.Purchase Price` AS Price
    

    【讨论】:

      【解决方案3】:

      将表名和列名都放在括号中,如 [tblCar].[Purchase Price]。将表名放在引号中在 MS SQL Server 中不起作用。

      【讨论】:

        【解决方案4】:

        在 SQL Server 2008 R2 中,tblCar.[Purchase Price] 适合我。您使用的是哪个版本的 SQL 版本??

        【讨论】:

          猜你喜欢
          • 2012-08-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-24
          • 1970-01-01
          相关资源
          最近更新 更多