PostgreSQL选择两列值

时间:2014-07-14 15:42:46

标签: sql database postgresql select

我有一个包含多个列的表,我正在尝试选择2列中相等的值。

我正在创建一个简单的选择

select * from table_name where column1 = column_2

但它没有任何回报。

我做对了吗?当然不会,除非它会工作:)但是,例如,如果我使用运算符

!=

它返回正确的行。发生了什么事?

1 个答案:

答案 0 :(得分:2)

我没有复制你的问题,这告诉我你在制作桌子时可能犯了错误?我认为查询不是问题。

这是我的榜样,一步一步来。首先,我们创建表(我使用PostgreSQL 9.1):

CREATE TABLE example(
id int,
name1 text,
name2 text
);

然后我用这些行填充它:

INSERT INTO example (id, name1, name2)
VALUES (0, 'Bird', 'Cheese');
INSERT INTO example (id, name1, name2)
VALUES (1, 'Bear', 'Honey');
INSERT INTO example (id, name1, name2)
VALUES (2, 'Fish', 'Fish');
INSERT INTO example (id, name1, name2)
VALUES (3, 'Bread', 'Bread');

好的,现在,当我使用您的格式的查询时,我应该得到id = 2和id = 3的行:

SELECT * FROM example WHERE name1 = name2;

返回了正确的结果:

 id | name1 | name2
----+-------+-------
  2 | Fish  | Fish
  3 | Bread | Bread

我建议您尝试这个示例,看看它是否适用于您的PostgreSQL版本。如果确实如此,太棒了!这意味着你的表实现可能只是错误(可能是不匹配的数据类型?)。如果示例不起作用,可能是PostgreSQL版本出现了问题