SQL从表中选择所有值,其中所有列都填充有数据

时间:2019-02-28 13:39:37

标签: mysql sql mysql-workbench

如果我有这样的表:

enter image description here

我需要返回每行中充满数据的所有值。如果一行中有空白值,则不应返回该行。 这是预期结果的示例:

enter image description here

我还将如何将代码与内部join语句组合在一起。

2 个答案:

答案 0 :(得分:0)

一种方法是只检查每一列:

SELECT ID, A, B, C, D
FROM yourTable
WHERE A IS NOT NULL AND B IS NOT NULL AND C IS NOT NULL AND D IS NOT NULL;

我不确定您所说的“空白”是什么意思,无论是NULL值还是可能为空字符串。这是涵盖两种可能性的版本:

SELECT ID, A, B, C, D
FROM yourTable
WHERE
    COALESCE(A, '') <> '' AND
    COALESCE(B, '') <> '' AND
    COALESCE(C, '') <> '' AND
    COALESCE(D, '') <> '';

答案 1 :(得分:-1)

这是两种方法。如果值为NULL,那么正如Tim所指出的,您可以执行以下操作:

WHERE A IS NOT NULL AND B IS NOT NULL AND C IS NOT NULL AND D IS NOT NULL

如果“空”可能表示空字符串,那么最简单的方法是:

WHERE A > '' AND B > '' AND C > '' AND D > ''

注意:这可能不适用于数值。但是在这种情况下,您需要直接与NULL进行比较。