Sql 如何删除空字符串

Sql 如何删除空字符串,sql,string,hadoop,trim,Sql,String,Hadoop,Trim,我正试图找到一种方法来修剪或删除看似空字符串中的空格,这样当我查找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 != ""

我正试图找到一种方法来修剪或删除看似空字符串中的空格,这样当我查找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个空格)
  • ABC
  • DEF
  • GHI
我需要的结果集

  • ABC
  • DEF
  • GHI

就我个人而言,我首先会考虑为什么会得到空字符串。 如果它们应该是空记录集,那么肯定有一些代码在某处插入了不必要的空格

修复此问题将阻止任何空白语句出现在SQL搜索中,因为它们将返回为null。这也将在将来为您节省时间,因为数据库中的空格可能是一件非常痛苦的事情

但是,如果您仍在寻找替换代码中空格的方法,我建议您阅读本文:


我相信这将使您走上正确的轨道。

看起来您的
,其中
条件未被修剪,而您的
选择
被修剪

在您的情况下,您使用字段_1作为条件中的引用,它似乎引用了表的列,而不是您通过将
trim(字段_1)作为字段_1创建的别名

如果您只想要没有空格的结果,那么不需要
trim()
您选择的列,因为您的条件强制您的结果可以没有空格,那么为什么不在第二个条件中使用
trim()

这样,字段_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

说得好。谢谢你。没问题,我已经编辑了答案,提供了一个链接来替换空格,我相信这可能会对你当前的问题有所帮助。太好了,这很有效。非常感谢您的解答和解释。@ace123很高兴听到这个!
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