Sql 在数据库中保留字符串中的前导空格

Sql 在数据库中保留字符串中的前导空格,sql,db2,Sql,Db2,我想插入一个值为'abcd'的列 我正在使用DB2数据库 我使用的查询是: insert into mySchema.myTable value (' abcd'); 但是,当我从表中取回值时,值前面的空格字符会自动被修剪 我用来取回行的查询是: select full_record from mySchema.myTable; 如何在数据库中保留此前导空格?在MSSQL中,它可以正常工作。除非不能使用Ltrim、Rtrim。。。作用请告诉我您正在使用哪个数据库???您是如何创建表DDS或脚

我想插入一个值为'abcd'的列

我正在使用DB2数据库

我使用的查询是:

insert into mySchema.myTable value (' abcd');
但是,当我从表中取回值时,值前面的空格字符会自动被修剪

我用来取回行的查询是:

select full_record from mySchema.myTable;

如何在数据库中保留此前导空格?

在MSSQL中,它可以正常工作。除非不能使用Ltrim、Rtrim。。。作用请告诉我您正在使用哪个数据库???

您是如何创建表DDS或脚本的?字段的数据类型是什么


尝试将字段定义为CHAR数据类型

在sql server中,在数据类型为char和varchar的列中插入前导空格时,前导空格将保留。但是,尾随空格会自动截断

create table TestSpace (firstname char(1000), lastname varchar(100))

insert into TestSpace (firstname, lastname)
select '  123', '  345'
union all
select '123  ', '345  '

select firstname, lastname , LEN(firstname) firstlen, LEN(lastname) lastlen
from TestSpace
所有工作罚款:

Database server        = DB2/SUN64 9.1.9

db2 => create table tt (a char (10), b varchar(10))
DB20000I  The SQL command completed successfully.
db2 => insert into tt values('a ', 'a '), (' b', ' b'), (' c ',' c '), ('d','d')
DB20000I  The SQL command completed successfully.

db2 => select a, b, length(a), length(b) from tt

A          B          3           4          
---------- ---------- ----------- -----------
a          a                   10           2
 b          b                  10           2
 c          c                  10           3
d          d                   10           1

  4 record(s) selected.

db2 => select '<'||a||'>', '<'||b||'>', length(a), length(b) from tt

1            2            3           4          
------------ ------------ ----------- -----------
<a         > <a >                  10           2
< b        > < b>                  10           2
< c        > < c >                 10           3
<d         > <d>                   10           1

  4 record(s) selected.

db2 => 

伊迪丝:这是预期的行为。char的长度是固定的,varchar的最大长度是可变的,因此char的长度是恒定的。必须保留前导空格,可以删除varchar中的尾随空格。

不应修剪第一个空格,您的查询是什么来获取该值的?插入mySchema.myTable值“”+“”+'abcd';我的DB2版本是iSeries V6R1,它在VARCHAR字段上保留了前导空格和尾随空格。手册似乎没有列出任何适用于这种情况的东西。但无论如何,你为什么要试图保留领先的空间呢?这通常与显示相关,而不是要存储的内容。嗯,我的db2不支持“值”,它必须拼写为“值”。这是您的输入错误,还是您使用的是不同的db2?我使用db2数据库的目的是实际字段的数据类型是varchar250,我使用简单的create query创建了表