我使用Sybase DB并尝试使用几种条件选择数据:
表名“别名”。
a_id, a_data, a_type_id, a_value
------------------------------
1, 666, 123, "value_1"
2, 666, 456, "value_2"
3, 777, 123, "value_4"
4, 777, 456, "value_5"
我有几个条件:
1. a_type_id = 123 and a_value = "value_1" AND
2. a_type_id = 456 and a_value = "value_2"
因此,如果同时满足两个条件,则结果应为a_data = 666
。
查询应该是这样的,但是它当然不起作用,返回0个结果:
select a_data from alias where ( a_type_id = 123 AND a_value = "value_1" ) AND (a_type_id = 456 AND a_value = "value_2")
期望结果a_data = 666
。
有人可以建议解决方法吗?可能有2、3或更多类似上述的条件。
答案 0 :(得分:1)
使用聚合和System.InvalidOperationException: 'Sequence contains no elements'
:
having
注意:这假设给定的select a_data
from t
where (a_type_id = 123 and a_value = 'value_1') or
(a_type_id = 456 and a_value = 'value_2')
group by a_data
having count(*) = 2;
值在原始数据中没有重复的类型/值对。如果可以,请使用:
a_data