我有一个MS访问数据库,我需要创建一个SQL查询,允许我在一列中选择所有不同的条目,同时保留所有值。
在这种情况下,一个例子比以往任何时候都值得数千字:
表:
A B C
1 x q
2 y w
3 y e
4 z r
5 z t
6 z y
SQL魔法
结果:
B C
y w
y e
z r
z t
z y
基本上它会删除B列的所有唯一值,但保留了多行 保持数据。我可以“按b分组”然后“计数> 1”以获得不明显但结果只列出一行B而不是我需要的2行或更多。
任何帮助?
感谢。
答案 0 :(得分:27)
Select B, C
From Table
Where B In
(Select B From Table
Group By B
Having Count(*) > 1)
答案 1 :(得分:7)
返回所需结果的另一种方法是:
select *
from
my_table
where
B in
(select B from my_table group by B having count(*) > 1)
答案 2 :(得分:3)
select
*
from
my_table t1,
my_table t2
where
t1.B = t2.B
and
t1.C != t2.C
-- apparently you need to use <> instead of != in Access
-- Thanks, Dave!
那样的东西?
答案 3 :(得分:1)
加入您通过b确定的B的唯一值和计数&gt; 1返回原始表以从表中检索C值。