当您使用引号转义名称时,如何选择特定表的列?

时间:2015-01-18 01:53:15

标签: sql postgresql

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

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

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

我得到的错误:

  

错误:列" UnitTest1.Name"不存在第1行:选择   " UnitTest1.Name" FROM" UnitTest1"在哪里"姓名" ='一个......                  ^

     

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

     

错误:列" UnitTest1.Name"不存在SQL状态:42703   性格:8

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

为tablename和columnname包含单独的双引号,这应该可以正常工作

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