4

我正在使用 SQL Server 2008、Visual Web Developer 2012 和 .net 4.0。我在 SQL Server 中创建了一个表并向其中添加了一些列。我给了一些列 datatype nchar(10)

现在我的问题是,当我插入少于 10 个字符的字符串作为列类型nchar(10)的值时,当我获取该值时,它会插入空格以完成 10 个字符的字符串。

意味着如果我插入"a"type 列nchar(10),那么当我再次获取该值时,我会返回:"a "

我该如何解决这个问题?

4

3 回答 3

3

您可以这样做来修剪空格:

SELECT RTRIM(CAST(col As NVARCHAR(10))) FROM test

查看SQLFIDDLE

于 2012-11-04T05:35:11.363 回答
3

定义字符串,因为 nvarchar(10)它可以正常工作

于 2012-11-04T07:55:43.200 回答
0

如果您不想更改数据类型,则需要从输出中修剪空间

SELECT
   RTRIM("a      ") AS ColumnName
FROM MyTable

但这意味着每次您在使用该列的每个地方都必须这样做。最好使用 VARCHAR(10) 或 NVARCHAR(20) 其中 VAR... 表示可变长度。因此,如果您的字符串不超过 10 个字符,则不会添加空格

最终的 SQL

SELECT
   RTRIM(ColumnName) AS ColumnName
FROM myTable
于 2012-11-04T05:29:06.670 回答