日期:2014-05-17  浏览次数:20621 次

sQL2000 查询不出中文 试过加N 也不行
英文SQL SERVER 2000 SP4
WINDOWS SERVER 2000 英文
TABLE 表中有一DES字段VARCHAR 
存有英文加中文内容 ,
现要根据中文关键字模糊查询相关记录,
通常英文没问题
SELECT * FROM TABLE1 WHERE DES LIKE '%中文%‘
但中文不行,无结果或不是正确结果,
找过N年前的贴子,加N,也不行,

SELECT * FROM TABLE1 WHERE DES LIKE N'%中文%‘

现试过修改数据库字符集为Chinese_PRC_CI_AS,

无果
再依次试改字段类型为NVARCHAR
也无果
其它方法:
SELECT DES FROM UN_ITEM1 
with(index=IX_UN_ITEM1)
 WHERE PATINDEX(DES, N'光油')>0


SELECT * FROM TABLE1 WHERE DES LIKE N'%中文%‘
collate chinese_prc_bin
--collate Chinese_PRC_CI_AS

SELECT * FROM TABLE1 WHERE DES LIKE '%中文%‘
collate chinese_prc_bin
--collate Chinese_PRC_CI_AS

都无果,
。。。。。郁焖加痛苦中。。。。

恳请哪位大佛化解,谢谢!
SQL??LIKE??模糊查询中文

------解决方案--------------------
其他的列有这种问题吗,能不能这样:

先建个表tb,一个字段des nvarchar类型,然后插入中文,再查询看,能不能查询到。如果能查询到,那说明不是系统的问题。

如果查出来,也是乱码,那说明,可能是系统的字符集的问题
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

对了 虽然已经把数据库的排序规则改成了 Chinese_PRC_CI_AS,这个字段DES 的排序规则是什么,

应该也是Chinese_PRC_CI_AS 了吧,
新建对DES的索引,也查不出


你在管理工具中,选择这个des列,右键“属性”,看看这个列的 排序规则


在该表设计中显示 collation 是Latin1_General_BIN


改成 :Chinese_PRC_CI_AS 试试
------解决方案--------------------
引用:
看来这是个碉堡了,不然原来的应用系统可能会无法正确运行


先别改了,改了反而是报了一堆错误。
------解决方案--------------------
引用:
看来这是个碉堡了,不然原来的应用系统可能会无法正确运行


试试这样呢:

SELECT * FROM TABLE1 
where DES collate Chinese_PRC_CI_AS like N'%中文%' collate Chinese_PRC_CI_AS





------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

看来这是个碉堡了,不然原来的应用系统可能会无法正确运行


试试这样呢:

SELECT * FROM TABLE1 
where DES collate Chinese_PRC_CI_AS like N'%中文%' collate Chinese_PRC_CI_AS






无果


你能不能这样,再建个表xxx,只用一个字段,des nvarchar类型,然后:

insert into xxx
select des
from 原表

你看看,把数据导入到新的表xxx后,能查询吗
------解决