2015-04-06 83 views
0

我想知道如何使查询返回值有另一个不同的“”基于,嗯,我不知道它应该被称为,标识符?例如,我有这样的数据:如何查询一些不同的值,基于另一个值

id | date  | user | item |  material  | Text | Description | 
------+------------+------+-------+--------------------+------+-------------+ 
12345 | 31.03.2015 | ID00 | 00010 | 000000001011000106 | abcd | something | 
12345 | 31.03.2015 | ID00 | 00020 | 000000001011010105 | abcd | test  | 
12345 | 31.03.2015 | ID00 | 00030 | 000000001011020106 | abcd | something | 
12345 | 31.03.2015 | ID00 | 00040 | 000000001011020104 | abcd | something | 
44455 | 31.03.2015 | ID00 | 00010 | 000000001011040106 | abcd | something | 
44455 | 31.03.2015 | ID00 | 00020 | 000000001011000105 | abcd | something | 
44455 | 31.03.2015 | ID00 | 00030 | 000000001011010104 | abcd | something | 
67890 | 31.03.2015 | ID00 | 00010 | 000000001011100402 | abcd | something | 
77777 | 31.03.2015 | ID00 | 00010 | 000000001011100402 | bcad | something | 
80808 | 31.03.2015 | ID00 | 00010 | 000000001011140102 | abcd | something | 
90009 | 31.03.2015 | ID00 | 00010 | 000000001011100102 | dcba | something | 
66666 | 01.04.2015 | ID00 | 00010 | 000000001011160101 | cdab | somesome | 

而且,我想导致基于ID描述。 假设所有编号为'44455'有价值的描述,这是'东西'它不应该显示。但是,对于ID “12345”所有的描述是包含不同的值“东西”除1排是,“测试”

所以,应该显示的行是描述包含值null以及包含不同值的行描述基于标识符id。从上面的例子中,它应该被打印:

id | date  | user | item |  material  | Text | Description | 
------+------------+------+-------+--------------------+------+-------------+ 
12345 | 31.03.2015 | ID00 | 00010 | 000000001011000106 | abcd | something | 
12345 | 31.03.2015 | ID00 | 00020 | 000000001011010105 | abcd | test  | 
12345 | 31.03.2015 | ID00 | 00030 | 000000001011020106 | abcd | something | 
12345 | 31.03.2015 | ID00 | 00040 | 000000001011020104 | abcd | something | 

如何在这种情况下查询条件?有任何建议吗?

在此先感谢

回答

2

您可以查询使用EXISTS

假设你的表名是TBL,则该查询:

select * 
from tbl a 
where exists (select 1 from tbl b where a.id = b.id and b.description <> 'Something'); 
+0

是的,非常感谢.. – 2015-04-10 04:16:19

0

你可以试试这个查询

select * 
from tbl a 
where 1 < (select count(*) from tbl b where a.id = b.id group by b.description); 
相关问题