13

抱歉,如果以前有人问过这个问题,但我一直在搜索,但找不到解决我的简单问题的方法。

我需要选择其中 varchar 列中包含文本(字母、数字或特殊字符)的所有行,因此我编写了如下查询:

SELECT col1
FROM table
WHERE col1 IS NOT NULL

但这会返回包含值 '' 的列(即它是空白的,但未设置为 NULL,因此仍会返回)。

我尝试将查询更改为:

SELECT col1
FROM table
WHERE col1 IS NOT NULL
AND col1 != ''

但这没有用。

如何停止返回该列为空白的行?

4

3 回答 3

26

然后使用TRIM您的列中似乎有空格

SELECT col1
FROM table
WHERE col1 IS NOT NULL
AND TRIM(col1) <> ''
于 2013-01-29T04:50:27.530 回答
1

如果列为空但未设置为 NULL,则可以使用此查询

SELECT col1 FROM table where col1 not like '';# 两个不带空格的单引号

或者

这如果列有一个或多个空格,

SELECT col1 FROM table where col1 not like '% %';
于 2013-01-29T07:23:02.777 回答
1

使用LENGTH

SELECT col1
FROM table
WHERE LENGTH(col1) > 0
于 2018-02-17T13:20:43.027 回答