SQL Select语句:如果有一个匹配项,则显示所有匹配项

时间:2018-04-19 15:06:13

标签: sql sql-server where

我有以下情况:

enter image description here

我想要实现的是一个SQL-Standard语句,它给我每一行“AAA”/“BBB”和日期(分组),当第四个与IS NOT NULL只有一个匹配时柱。而另一方面,如果在每行的第4列中与IS NOT NULL匹配,则没有一个。并且每一行都与IS NULL匹配。

输出应为:

enter image description here

我希望我的意思很清楚?

谢谢你们!

编辑: 尝试了isaace的解决方案,并通过一些编辑为我工作:

SELECT DISTINCT a.* FROM TABLE a
INNER JOIN
(
SELECT COL_1, COL_2 FROM TABLE WHERE COL_4 is null
) b ON a.COL_1 = b.COL_1 AND a.COL_2 = b.COL_2

2 个答案:

答案 0 :(得分:1)

自您编辑以来,我删除了我的上述答案。我希望我的问题是正确的。

select a.* from table a
join
(
    select col1, colb from table where col3 is null
 ) b on a.col1 = b.col1 and a.col2 = b.col2

答案 1 :(得分:0)

嗯。如果我理解正确,你可以使用窗口函数:

private void Text_PreviewTextInput(object sender, TextCompositionEventArgs e) => e.Handled = !char.IsDigit(e.Text.Last() && !e.Text.Last() == '.');

这将删除具有多个" XXX"的col1 / col2对。列。