选择nchar或nvarchar之类的位置

时间:2013-10-28 15:01:21

标签: c# sql nvarchar

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

如果是这样,为什么并且将数据类型更改为nvarchar只能解决?

我注意到nchar是ANSIString类型的,而nvarchar只是String,但是当它们都是unicode时,它们看起来很奇怪,而另一个则不行。

1 个答案:

答案 0 :(得分: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之后不需要空间