【问题标题】:How to remove white spaces from columns in SQL Server 2000?如何从 SQL Server 2000 中的列中删除空格?
【发布时间】:2015-03-12 20:44:11
【问题描述】:

我有一个旧的 SQL Server 2000 数据库,我从中读取数据。我的问题是每个涉及字符串的查询都返回一个值,该值与填充空格的列的大小相同。

例如:假设我们有一个名为NAME CHAR(20) 的列。所有查询都会返回:

"John                    " 

而不仅仅是"John"

我的数据库中是否有导致这种情况的配置或参数,或者是否有任何可以更改的东西来避免这种情况?谢谢。

编辑:

我想澄清一下,我正在使用 JPA 存储库读取我的数据库。我不想从列中物理删除空格,或者使用 RTRIM/LTRIM/REPLACE 手动修剪值。我只是想检索没有尾随空格的列,而不会给查询增加任何额外的压力或以编程方式修剪字段。

【问题讨论】:

  • 使用VARCHAR(20) 而不是CHAR(20) - char(n)总是用空格填充到定义的长度(根据定义)
  • 你考虑过视图还是计算列?
  • 是的,我有。事实上,我目前正在阅读视图。问题是我不允许以任何方式修改它们,例如,将 char 转换为 varchar。我必须按原样读取数据。我只是想知道是否有任何方法可以让它返回没有任何尾随空格的值。无论如何感谢你们@marc_s

标签: sql-server sql-server-2000 whitespace


【解决方案1】:

你可以使用 REPLACE/RTRIM/LTRIM

select RTRIM(LTRIM(column_name)) from table_name

select  replace(column_name, ' ', '') from table_name

【讨论】:

  • 我刚刚添加了有关该主题的更多信息。我想避免在查询和处理字符串值的程序中修剪列。还是谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 1970-01-01
  • 2010-12-27
相关资源
最近更新 更多