SQL 选择不同的行,如果为空则忽略行

Posted

技术标签:

【中文标题】SQL 选择不同的行,如果为空则忽略行【英文标题】:SQL select distinct rows and ignore row if blank 【发布时间】:2012-06-10 08:26:57 【问题描述】:

我正在使用 sql 查询从表中获取行。我只想选择具有不同值的行,如果没有为某行输入值,则该行不应该存在。

SELECT DISTINCT meta_value FROM `wp_postmeta` WHERE meta_key = "aaa";

这是我正在使用的查询,我通过该查询获得了不同的行,但也获得了空白行。

【问题讨论】:

【参考方案1】:

您需要处理meta_value 列中的空值。 你可以这样做。

SELECT DISTINCT meta_value FROM wp_postmeta WHERE meta_key = 'aaa' and meta_value != ISNULL(meta_value,'')

希望这会正常工作。

【讨论】:

【参考方案2】:

在这个查询中,显示不同的值,如果一列包含一些空值也会被删除。

select distinct color from tbl_product where color is not null

我希望这段代码对所有人都有帮助..

【讨论】:

【参考方案3】:

我会用

where meta_key = "aaa"
AND (meta_value IS NOT NULL or meta_value != "");

但这取决于您使用的引擎,最重要的是 - 您插入空值的方式。 NULL 0 ' '

【讨论】:

【参考方案4】:

IS NOT NULL试试这个查询

SELECT DISTINCT meta_value
FROM `wp_postmeta`
WHERE meta_key = "aaa"
AND meta_value IS NOT NULL ;

【讨论】:

【参考方案5】:
SELECT DISTINCT meta_value
FROM `wp_postmeta`
WHERE meta_key = "aaa"
AND meta_value != "";

【讨论】:

【参考方案6】:

简单的解决方案:

SELECT DISTINCT meta_value 
FROM `wp_postmeta` 
WHERE meta_key = "aaa" AND meta_value != "";

【讨论】:

以上是关于SQL 选择不同的行,如果为空则忽略行的主要内容,如果未能解决你的问题,请参考以下文章

MS Access,根据多个标准表单输入选择记录

SQL 查询来自不同区域的选择行

从表 SQL 中选择多个不同的行

根据可以具有值或为空的字段选择组内的行

Oracle SQL 选择具有开始和结束日期的行,如果某些重叠合并行

sql只选择重复的行