📜  如何在SQL中过滤列中没有空的行?

📅  最后修改于: 2022-05-13 01:54:22.726000             🧑  作者: Mango

如何在SQL中过滤列中没有空的行?

在这里,我们将看到,如何在使用 IS NOT NULL运算符的 SQL 查询的帮助下,在 MS SQL Server 数据库表的列中过滤不为空的行。

出于演示的目的,我们将在名为“ geeks ”的数据库中创建一个demo_orders表。

创建数据库:

使用以下 SQL 语句创建名为 geeks 的数据库:

CREATE DATABASE geeks;

使用数据库:

使用以下 SQL 语句将数据库上下文切换到 geeks:

USE geeks;

表定义:

我们的极客数据库中有以下演示表。



CREATE TABLE demo_orders(
 ORDER_ID INT IDENTITY(1,1) PRIMARY KEY, --IDENTITY(1,1) is same as AUTO_INCREMENT in MySQL.
                                              --Starts from 1 and increases by 1 with each inserted row.
 ITEM_NAME VARCHAR(30) NOT NULL,
 ORDER_DATE DATE
);

您可以使用以下语句查询已创建表的描述:

EXEC SP_COLUMNS demo_orders;

向表中添加数据:

使用以下语句向demo_orders表添加数据:

INSERT INTO demo_orders --no need to mention columns explicitly as we
                        --are inserting into all columns and ID gets 
                         --automatically incremented.
VALUES
('Maserati', '2007-10-03'),
('BMW', '2010-07-23'),
('Mercedes Benz', '2012-11-12'),
('Ferrari', '2016-05-09'),
('Lamborghini', '2020-10-20');

要验证表的内容,请使用以下语句:

SELECT * FROM demo_orders;

现在让我们在order_date列中插入一些没有值(或空值)的行。

INSERT INTO demo_orders(ITEM_NAME)
VALUES
('NullRowOne'),
('NullRowTwo'),
('NullRowThree');

新插入数据后的表如下:

下面是过滤指定列中没有空值的行的语法。

Syntax:
SELECT * FROM 
WHERE  IS NOT NULL;

例子:

SELECT * FROM demo_orders
WHERE ORDER_DATE IS NOT NULL;
--Will output the rows consisting of non null order_date values.

输出: