Sql 如何删除空字符串
我正试图找到一种方法来修剪或删除看似空字符串中的空格,这样当我查找min值时,我会得到一个带有字符的结果,而不是一个带有空格的空字符串 最初我尝试排除空字段(!=“”),但由于空字符串包含空格,从技术上讲它不是空字符串,因此我尝试修剪,但仍然无法获得所需的结果集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 != ""
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
我相信这将使您走上正确的轨道。看起来您的
,其中
条件未被修剪,而您的选择
被修剪
在您的情况下,您使用字段_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