【问题标题】:How do you select a column of a specific table when you escape the names with quotes?当您使用引号转义名称时,如何选择特定表的列?
【发布时间】:2015-03-16 09:10:02
【问题描述】:

当您使用引号转义名称时,如何选择特定表的列?以下不起作用:

SELECT "UnitTest1.Name" FROM "UnitTest1" WHERE "Name" = 'One'; 

如果我从选定列中删除表名,它会起作用,但这不是我想要的,因为我计划稍后包含第二个表,它可能共享一个或两个列名。

我得到的错误:

错误:列“UnitTest1.Name”不存在第 1 行:SELECT "UnitTest1.Name" FROM "UnitTest1" WHERE "Name" = '一个... ^

**********错误**********

错误:列“UnitTest1.Name”不存在 SQL 状态:42703 字符:8

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    引号保护标识符不被解析,因此查询失败,因为您没有名为"UnitTest1.Name" 的列。这是两个标识符(表名和列名),需要单独引用:

    SELECT "UnitTest1"."Name" FROM "UnitTest1" WHERE "Name" = 'One';
    

    【讨论】:

      【解决方案2】:

      用单独的双引号将表名和列名括起来,这应该可以正常工作

      SELECT "UnitTest1"."Name" FROM "UnitTest1" WHERE "Name" = 'One'; 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-17
        • 2020-09-06
        • 1970-01-01
        • 1970-01-01
        • 2021-10-22
        • 2020-02-24
        相关资源
        最近更新 更多