【问题标题】:Inserting Strings Without Trailing Spaces SQL插入不带尾随空格的字符串 SQL
【发布时间】:2010-05-13 17:33:04
【问题描述】:

我有一个数据库,其中有一个名为 Field1 的字段,每个条目有 100 个 nchars。 每次我添加一个值时,它都存储为:

"value     (100-ValueLength Spaces)        "

所以基本上每个存储的值后面都有一串空格。当我尝试这样做时,这将成为一个问题:

if (value == "Example")

因为字符串后面的所有空格。 如何获取它以使存储的值不包含所有这些尾随空格?

【问题讨论】:

  • 不确定,虽然我认为这是普通的 SQL,但如果有帮助的话,我正在使用 Microsoft SQL Server Management Studio 2008。

标签: sql spaces


【解决方案1】:

如果您想要一个可变长度的字符串,请使用nvarchar(100) 而不是nchar(100)。后者总是有 100 个字符,前者最多可以有 100 个字符,但不会填满空间。

【讨论】:

  • 知道了。刚开始建数据库的时候,不知道nchar和nvarchar的区别,选择使用nchar,现在才意识到自己犯的错误。
【解决方案2】:

插入时使用sqlLTRIMRTRIM函数。

【讨论】:

  • 我是用LINQ插入的,有没有和你说的等价的LINQ?
  • 然后简单地对字符串应用Trim,这种情况下不需要使用sql函数。
【解决方案3】:

您是否可以使用 nvarchar,这样如果您不满足所需的字符串长度,则不会添加填充。如果是这样,那可能会更好,然后不断地修剪你的字符串条目。

【讨论】:

  • 我刚刚阅读了 nvarchar 和 nchar 之间的区别。我将尝试实现此字段类型,看看是否有帮助。
猜你喜欢
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
  • 2017-12-07
  • 1970-01-01
  • 1970-01-01
  • 2019-02-02
  • 1970-01-01
  • 2016-01-21
相关资源
最近更新 更多