SQL Server数据库中的数据类型为nchar的问题

时间:2012-11-04 05:17:08

标签: c# sql-server sqldatatypes

我正在使用SQL Server 2008,Visual Web Developer 2012和.net 4.0。我在SQL Server中创建了一个表,并为其添加了一些列。我给了一些数据类型为nchar(10)的列。

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

表示我将"a"插入nchar(10)类型的列中, 然后,当我再次获取该值时,我会回来:"a "

如何解决此问题?

3 个答案:

答案 0 :(得分:3)

你可以这样做来修剪空白:

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

查看 SQLFIDDLE

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

SELECT
   RTRIM("a      ") AS ColumnName
FROM MyTable

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

最终SQL

SELECT
   RTRIM(ColumnName) AS ColumnName
FROM myTable