Sql server 如何在SQLServer2000中删除列中的空格?

Sql server 如何在SQLServer2000中删除列中的空格?,sql-server,sql-server-2000,whitespace,Sql Server,Sql Server 2000,Whitespace,我有一个旧的SQL Server 2000数据库,从中读取数据。我的问题是,每个涉及字符串的查询都会返回一个值,该值的大小与该列的大小相同,并用空格填充 e、 g:假设我们有一列名为NAME CHAR(20)。所有查询将返回: "John " 而不仅仅是“约翰” 我的数据库中是否存在导致此问题的配置或参数,或者任何可以更改以避免此问题的内容?多谢各位 编辑: 我想澄清一下,我正在使用JPA存储库阅读我的数据库。我不想实际删除列中的空白,也不想使用RTRI

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

e、 g:假设我们有一列名为
NAME CHAR(20)
。所有查询将返回:

"John                    " 
而不仅仅是“约翰”

我的数据库中是否存在导致此问题的配置或参数,或者任何可以更改以避免此问题的内容?多谢各位

编辑:


我想澄清一下,我正在使用JPA存储库阅读我的数据库。我不想实际删除列中的空白,也不想使用RTRIM/LTRIM/REPLACE手动修剪值。我只是尝试在不带尾随空格的情况下检索列,而不向查询添加任何额外的压力或通过编程方式修剪字段。

您可以使用REPLACE/RTRIM/LTRIM

select RTRIM(LTRIM(column_name)) from table_name


使用
VARCHAR(20)
代替
CHAR(20)
-
CHAR(n)
总是用空格填充到定义的长度(根据定义),您考虑过视图或计算列吗?是的,我考虑过。事实上,我目前正在阅读观点。问题是我不允许以任何方式修改它们,例如,将char转换为varchar。我必须按原样读取数据。我只是想知道是否有任何方法可以让它返回没有任何尾随空格的值。谢谢你们两位@marc_sI刚刚添加了更多关于这个主题的信息。我希望避免在查询和处理字符串值的程序中修剪列。无论如何谢谢你!
select  replace(column_name, ' ', '') from table_name