很抱歉,如果以前曾经问过这个,但我一直在搜索,找不到解决我这个简单问题的方法。
我需要选择其中varchar列中包含文本的所有行(字母,数字或特殊字符),因此我编写了如下查询:
SELECT col1
FROM table
WHERE col1 IS NOT NULL
但是这会返回包含值''的列(即它是空白的,但不会设置为NULL,因此仍然会返回)。
我尝试将查询更改为:
SELECT col1
FROM table
WHERE col1 IS NOT NULL
AND col1 != ''
但那没用。
如何停止返回列空白的行?
答案 0 :(得分:25)
使用TRIM
您的列中似乎有空格
SELECT col1
FROM table
WHERE col1 IS NOT NULL
AND TRIM(col1) <> ''
答案 1 :(得分:1)
如果列为空,但未设置为NULL
,则可以使用此查询 SELECT col1 FROM table where col1 not like '';
#两个没有空格的单引号
OR
此if列有一个或多个空格
SELECT col1 FROM table where col1 not like '% %';
答案 2 :(得分:0)
使用 LENGTH
:
SELECT col1
FROM table
WHERE LENGTH(col1) > 0