用SQL SERVER 两年了,今天突然发现一个奇怪的问题,难道是BUG?

must0001 2006-05-12 11:00:26
突然发现sql server对中文和西文的字符分不清,如:中文!和西文!,中文)和西文),中文,和西文,分不清楚,如果两个字符在同一个字段里:
select f1 from table1 where f1=','(中文,)
select f1 form table1 where f1=','(西文,)
结果是一样的,非常奇怪,是不是需要开启什么参数,还是字符集有问题?
...全文
196 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxtyzgd 2006-05-12
  • 打赏
  • 举报
回复
SQLSERVER安装时的语言,排序问题。SQLSERVER这样做是正确的。不要动不动就说BUG。
昵称被占用了 2006-05-12
  • 打赏
  • 举报
回复
还是不同的,在字典序的情况下不同

看以下测试:

select case when ','=',' then 1 else 0 end as a,
case when ',' COLLATE Chinese_PRC_BIN =',' collate Chinese_PRC_BIN then 1 else 0 end as b,
case when ',' COLLATE Chinese_PRC_BIN=',' then 1 else 0 end as c,
case when ',' COLLATE Chinese_PRC_CI_AS=',' then 1 else 0 end as d
飞哥 2006-05-12
  • 打赏
  • 举报
回复
看过了
回贴
losedxyz 2006-05-12
  • 打赏
  • 举报
回复
标记
云中客 2006-05-12
  • 打赏
  • 举报
回复
不区分
淡蓝冰 2006-05-12
  • 打赏
  • 举报
回复
確實是那樣!
zlp321002 2006-05-12
  • 打赏
  • 举报
回复
--用AscII 编码比较,这样就可以区分出来.

declare @t table (f1 varchar(200))
insert into @t select ','
union all select ','


select f1 from @t where ascII(f1)=ascII(',')

select f1 from @t where ascII(f1)=ascII(',')


niulity 2006-05-12
  • 打赏
  • 举报
回复
呵呵,还真的不区别,关注一下~~~
---涛声依旧--- 2006-05-12
  • 打赏
  • 举报
回复
逗號﹐半角﹑全角還是可以區分的
paoluo 2006-05-12
  • 打赏
  • 举报
回复
的確時不區分,以前就注意到這個問題過。:)
冷箫轻笛 2006-05-12
  • 打赏
  • 举报
回复
有关系吗?
子陌红尘 2006-05-12
  • 打赏
  • 举报
回复
确实不区分。

34,590

社区成员

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

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