中文查询问题。

fish21cn 2004-05-03 12:00:13
明明表里面有值(中文字符), 却查不出来。
是不是要进行什么预处理,或者是转化为二进制进行比较。
...全文
23 15 点赞 打赏 收藏 举报
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
internetcsdn 2004-05-03
真搞不懂:

CREATE TABLE [dbo].[Salary] (
[prize] [varchar] (300) COLLATE Chinese_PRC_CI_AS NULL ,
[tot] [int] NULL ,
[comment] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[code] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[category] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[cat_id] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

insert salary
select '100',20,'1000元-2000元','code','category','cat_id'

select * from salary

drop table salary

结构无问题啊

----------------------------------------
100 20 1000元-2000元 code category cat_id
  • 打赏
  • 举报
回复
dsclub 2004-05-03
CREATE TABLE [dbo].[Salary] (
[prize] [varchar] (300) COLLATE Chinese_PRC_CI_AS NULL ,
[tot] [int] NULL ,
[comment] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[code] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[category] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[cat_id] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

insert Salary(comment) values('1000元-2000元')

Select * From Salary Where comment='1000元-2000元'

所影响的行数为 1 行
  • 打赏
  • 举报
回复
fish21cn 2004-05-03
CREATE TABLE [dbo].[Salary] (
[prize] [varchar] (300) COLLATE Chinese_PRC_CI_AS NULL ,
[tot] [int] NULL ,
[comment] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[code] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[category] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[cat_id] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO



大家试试数据。
  • 打赏
  • 举报
回复
internetcsdn 2004-05-03
有可能是表结构的问题吗?
试下生成此表的脚本,
看看是否与其它表不同啊.
  • 打赏
  • 举报
回复
fish21cn 2004-05-03
我可不是菜鸟...
大哥...
  • 打赏
  • 举报
回复
fish21cn 2004-05-03
SELECT * FROM Salary WHERE comment = '%1000元-2000元%'
这个是可以的。
其他表都可以选出来,就这个表有问题。
  • 打赏
  • 举报
回复
carl2004 2004-05-03
你试试,你的标点符号是不是在英文下输入的,
有可能是在中文下输入的,这就不行了。
  • 打赏
  • 举报
回复
zjcxc 元老 2004-05-03
--试试用:
SELECT * FROM Salary WHERE comment = '%1000元-2000元%'
  • 打赏
  • 举报
回复
zjcxc 元老 2004-05-03
--没问题啊,你检查你表中的数据.


--测试

--测试数据
declare @t table(comment varchar(50))
insert @t values('1000元-2000元')

--查询
SELECT * FROM @t WHERE comment = '1000元-2000元'


/*--测试结果

comment
--------------------------------------------------
1000元-2000元

(所影响的行数为 1 行)
--*/
  • 打赏
  • 举报
回复
fish21cn 2004-05-03
字段为varchar(50),值为'1000元-2000元',
查询为: SELECT * FROM Salary WHERE comment = '1000元-2000元';
  • 打赏
  • 举报
回复
internetcsdn 2004-05-03
具体情况是怎样的啊?

比如是什么类型的字段,或者有那些值
  • 打赏
  • 举报
回复
internetcsdn 2004-05-03
1楼,

关注
  • 打赏
  • 举报
回复
fish21cn 2004-05-03
真是愚蠢的问题,多了一个换行吧。郁闷。
唉,才开始用sqlserver不太熟悉,让大家见笑了。
  • 打赏
  • 举报
回复
fish21cn 2004-05-03
怎么解决这个问题?
我在企业管理器中录入的数据是上面一个, 就查询不出来,而插入的数据可以查询出来。
  • 打赏
  • 举报
回复
fish21cn 2004-05-03
0x31303030D4AA2D32303030D4AA0D0A
0x31303030D4AA2D32303030D4AA = '1000元-2000元'

通过二进制进行比较,结果是这样.

0D0A是代表什么字符?
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-05-03 12:00
社区公告
暂无公告