SQL - 选择具有值的行

时间:2017-05-19 08:48:10

标签: sql database ms-access

我有一个包含大量列和行的表。我遇到的问题是我想选择某个列并获取包含所有非空值的行。

我的(到目前为止)正确的陈述如下:

SELECT * 
FROM table_name
WHERE col_1 = "Apotheken"

这将返回包含其所有(非)值的正确行。 但是如何从这一行中获得非空值?我可以这样写:

SELECT * 
FROM table_name
WHERE col_1 = "Apotheken"
AND col_2 IS NOT NULL
AND col_3 IS NOT NULL
...
AND col_n IS NOT NULL

正如我所说,有太多列。有没有办法只选择具有实际值的列?

提前致谢!

2 个答案:

答案 0 :(得分:0)

你可以这样做,这将节省一些打字:

SELECT * 
FROM table_name
WHERE col_1 = "Apotheken"
AND (col_2 + col_3 + col_4 + ... + col_n) IS NOT NULL

或作为多种用途的视图:

SELECT * 
FROM table_name
WHERE (col_2 + col_3 + col_4 + ... + col_n) IS NOT NULL

答案 1 :(得分:0)

创建视图

您可以创建一个VIEW来摆脱在您编写的每个查询中输入这些条件。

CREATE VIEW view_table_not_null AS (  
  SELECT *  
  FROM table  
  WHERE col_1 IS NOT NULL  
    AND col_2 IS NOT NULL  
    AND col_N IS NOT NULL  
);  

然后您可以SELECT VIEW WHERE ... IS NOT NULL而无需在每个查询中写NOT NULL即可免费获取VIEW。创建一次,随处使用。经典SELECT * FROM view_table_not_null WHERE col_3 = 'Apotheken';

ALTER TABLE column_4 SET NOT NULL;

将列更改为NOT NULL

$args->hasChangedField('public')
相关问题