首页 > 解决方案 > 如何仅选择具有非空值sql的列

问题描述

我有一个表,它有几列,可以为空或有值。我只想得到那些有值的列。

我尝试使用IFinSELECT子句:

SELECT
    IF(column1 IS NOT NULL, column1, null AS value,
    IF(column2 IS NOT NULL, column2, null AS value,
    IF(column3 IS NOT NULL, column3, null AS value,
    IF(column4 IS NOT NULL, column4, null AS value,
    IF(column5 IS NOT NULL, column5, null AS value,
    IF(column6 IS NOT NULL, column6, null) AS value
FROM
    table1;

但这不是我想要的结果,因为我一开始就解释了。我也尝试了CASE相同的结果。​</p>

编辑:

例如,假设我们有这张表。Column1 将始终显示。

COLUMN1  COLUMN2  COLUMN3  COLUMN4  COLUMN 5
--------------------------------------------
NAME1    NULL     VALUE    VALUE    NULL
NAME2    VALUE    NULL     VALUE    NULL
NAME3    VALUE    VALUE    NULL     VALUE

始终使用相同的查询并仅更改此WHERE子句 ...WHERE COLUMN1 LIKE 'NAME1';我想要下一个输出

COLUMN1  COLUMN3  COLUMN4
-------------------------
NAME1    VALUE    VALUE

另一个例子:...WHERE COLUMN1 LIKE 'NAME3';

COLUMN1  COLUMN2  COLUMN3  COLUMN 5
-----------------------------------
NAME3    VALUE    VALUE    VALUE

标签: mysqlsql

解决方案


T-SQL:

SELECT COALESCE(column1, column2) from table

它选择 this 的第一个非 null 的值column1 and column2


推荐阅读