我试图找到一种方法来修剪或删除看似空字符串中的空格,以便在查找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公司
3条答案
按热度按时间slmsl1lt1#
0dxa2lsx2#
它看起来像你的
WHERE
条件是没有被削减,而你的SELECT
是。在您的例子中,您使用字段\1作为条件中的引用,它似乎引用表的列,而不是您通过以下语句创建的别名
trim(Field_1) as Field_1
如果你只想要没有空格的结果,那就没有必要了trim()
您选择的列因为您的条件强制您的结果不能有空格,所以为什么不使用trim()
第二种情况?这样,字段\u 1的每个记录的值都将首先被修剪,然后与“”进行比较。
像这样的怎么样?
unguejic3#
就我个人而言,我会先看看为什么你会得到空字符串。如果它们应该是空的记录集,那么肯定有一些代码在某处插入了不必要的空格。
解决这个问题将阻止任何空白语句出现在sql搜索中,因为它们将返回为null。这也将节省您在未来的数据库中的空白空间可以是一个相当痛苦的!
但是,如果您仍在寻找替换代码中空格的方法,我建议您阅读本文:用一个空格替换多个空格
我相信这会让你走上正轨。