中文查询问题。

fish21cn 2004-05-03 12:00:13
明明表里面有值(中文字符), 却查不出来。
是不是要进行什么预处理,或者是转化为二进制进行比较。
...全文
55 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
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是代表什么字符?

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧