3

根据我的经验,似乎从我的数据库中选择数据的位置不适用于 nchar 格式的字段,但适用于 nvarchar 格式。这是真的?

如果是这样,为什么并且将数据类型更改为 nvarchar 是唯一的解决方法?

我注意到 nchar 是 ANSIString 类型,而 nvarchar 只是 String ,但是当它们都是 unicode 时,一个有效而另一个无效,这似乎很奇怪。

4

1 回答 1

1

原来你们都在赚钱,这是一个与填充相关的问题,一个 nchar 或 char 在它的右边有一个空格作为填充,这意味着我必须做这样的事情

SELECT * FROM foo WHERE bar LIKE '%bb %'

而不是这个

SELECT * FROM foo WHERE bar LIKE '%' + @field + '%'

这与后一个查询相反,将选择所有 nvarchar 等字段,但不会选择 nchar 或 char 字段。

(编辑)

SELECT * FROM foo WHERE bar LIKE '%bb%'

该解决方案适用于我提到的两组数据类型。bb后不需要空格

于 2013-10-28T15:36:31.507 回答