有一个表格,其中包含
category not null
、sub_category default null
列。
category
始终设置sub_category
是可选的我需要从表格中选择
distinct category,sub_category
并且
category
+ <null>
category sub_category
girl_toys fluffy
girl_toys dolls
drawing <null> -- keep it since only one null sub_category
paining red_color
paining <null> -- exclude since there is non null sub_category
预期结果:
category sub_category
girl_toys fluffy
girl_toys dolls
drawing <null> -- keep is since drawing has only one null
paining red_color -- <null> record excluded since there is non null sub_category exists
多种方法中的一种:
SELECT DISTINCT category, sub_category
FROM tbl t1
WHERE sub_category IS NOT NULL
OR (sub_category IS NULL
AND NOT EXISTS (
SELECT FROM tbl t2
WHERE t2.category = t1.category
AND t2.sub_category IS NOT NULL
)
);
我假设如果有多个相同的实例,您也想保留一份副本 (
category
+ null
)。