当您用引号转义名称时,如何 select 特定 table 的列?
How do you select a column of a specific table when you escape the names with quotes?
当您用引号转义名称时,如何 select 特定 table 的列?以下无效:
SELECT "UnitTest1.Name" FROM "UnitTest1" WHERE "Name" = 'One';
如果我从 selected 列中删除 table 名称,它会起作用,但这不是我想要的,因为我计划稍后包含第二个 table,它可能共享一个一两个列名。
我遇到的错误:
ERROR: column "UnitTest1.Name" does not exist LINE 1: SELECT
"UnitTest1.Name" FROM "UnitTest1" WHERE "Name" = 'One...
^
********** Error **********
ERROR: column "UnitTest1.Name" does not exist SQL state: 42703
Character: 8
引号保护标识符不被解析,因此查询失败,因为您没有名为 "UnitTest1.Name"
的列。这是两个标识符(一个table名称和一个列名称),需要分别引用:
SELECT "UnitTest1"."Name" FROM "UnitTest1" WHERE "Name" = 'One';
将表名和列名用单独的双引号引起来,这样应该没问题
SELECT "UnitTest1"."Name" FROM "UnitTest1" WHERE "Name" = 'One';
当您用引号转义名称时,如何 select 特定 table 的列?以下无效:
SELECT "UnitTest1.Name" FROM "UnitTest1" WHERE "Name" = 'One';
如果我从 selected 列中删除 table 名称,它会起作用,但这不是我想要的,因为我计划稍后包含第二个 table,它可能共享一个一两个列名。
我遇到的错误:
ERROR: column "UnitTest1.Name" does not exist LINE 1: SELECT "UnitTest1.Name" FROM "UnitTest1" WHERE "Name" = 'One... ^
********** Error **********
ERROR: column "UnitTest1.Name" does not exist SQL state: 42703 Character: 8
引号保护标识符不被解析,因此查询失败,因为您没有名为 "UnitTest1.Name"
的列。这是两个标识符(一个table名称和一个列名称),需要分别引用:
SELECT "UnitTest1"."Name" FROM "UnitTest1" WHERE "Name" = 'One';
将表名和列名用单独的双引号引起来,这样应该没问题
SELECT "UnitTest1"."Name" FROM "UnitTest1" WHERE "Name" = 'One';