如何删除空字符串

dldeef67  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(628)

我试图找到一种方法来修剪或删除看似空字符串中的空格,以便在查找min值时得到一个带有字符的结果,而不是带有空格的空字符串。
最初我尝试排除空字段(!=“”)但是,由于空字符串包含空格,从技术上讲它不是空字符串,因此我尝试了修剪,但仍然无法获得所需的结果集。

select trim(Field_1) as Field_1
from Table_1
where Field_Date between '2019-08-01' and '2019-08-31'
and Field_1 != ""
order by Field_1 asc

我得到的结果集是:
空白(6个空格)
空白(6个空格)
空白(6个空格)
公司
定义
ghi公司
我需要的结果集
公司
定义
ghi公司

slmsl1lt

slmsl1lt1#

select Field_1
from Table_1
where Field_Date between '2019-08-01' and '2019-08-31'
and Field_1 not like '% %'
order by Field_1 asc
0dxa2lsx

0dxa2lsx2#

它看起来像你的 WHERE 条件是没有被削减,而你的 SELECT 是。
在您的例子中,您使用字段\1作为条件中的引用,它似乎引用表的列,而不是您通过以下语句创建的别名 trim(Field_1) as Field_1 如果你只想要没有空格的结果,那就没有必要了 trim() 您选择的列因为您的条件强制您的结果不能有空格,所以为什么不使用 trim() 第二种情况?
这样,字段\u 1的每个记录的值都将首先被修剪,然后与“”进行比较。
像这样的怎么样?

select Field_1
from Table_1
where Field_Date between '2019-08-01' and '2019-08-31'
and trim(Field_1) != ""
order by Field_1 asc
unguejic

unguejic3#

就我个人而言,我会先看看为什么你会得到空字符串。如果它们应该是空的记录集,那么肯定有一些代码在某处插入了不必要的空格。
解决这个问题将阻止任何空白语句出现在sql搜索中,因为它们将返回为null。这也将节省您在未来的数据库中的空白空间可以是一个相当痛苦的!
但是,如果您仍在寻找替换代码中空格的方法,我建议您阅读本文:用一个空格替换多个空格
我相信这会让你走上正轨。

相关问题