关于字段比较的问题,请进。。。。

yk1212 2003-08-25 11:15:13
sql server数据库varchar类型的字段比较好像不区分大小写,是不是有什么数据库参数需要特别设定一下呢?
比如:
select * from tbXXX where col1 = 'AAA'

select * from tbXXX where col1 = 'aaa'
查询得到的结果是一样的。
这怎么行呢?
...全文
105 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yk1212 2003-08-25
  • 打赏
  • 举报
回复
大力和蚂蚁回复的都非常好,这里高手还是很夺得啊。不错啊。不过好像给你们送分,但是没有显示出来啊。难道操作错了?
lynx1111 2003-08-25
  • 打赏
  • 举报
回复
UP
pengdali 2003-08-25
  • 打赏
  • 举报
回复
更改排序规则。

alter database 数据库 collate 排序规格


其中,某些排序规则指定CI 不区分大小写,CS 指定区分大小写。

如:alter database 数据库 COLLATE Chinese_PRC_CI_AS
不区分大小写,而
alter database 数据库 COLLATE Chinese_PRC_CS_AS
使之区分大小写。

使用如下命令,可以获得更多的规则:
SELECT *
FROM ::fn_helpcollations()
yk1212 2003-08-25
  • 打赏
  • 举报
回复
CrazyFor(蚂蚁),你好:
修改目标库的默认排序规则和字段排序规则为:chinese_rpc_cs_ai
字段类型用:Nchar,Nvarchar,Ntext

难道用varchar类型的字段不行吗?非要用Nvarchar?
nboys 2003-08-25
  • 打赏
  • 举报
回复

collate chinese_prc_CS_Ai 是把这一个字段定义为区分大小写
CrazyFor 2003-08-25
  • 打赏
  • 举报
回复
修改目标库的默认排序规则和字段排序规则为:chinese_rpc_cs_ai
字段类型用:Nchar,Nvarchar,Ntext

改库
ALTER DATABASE database
COLLATE ....
改字段
alter table 表名 alter column 字段名 类型 collate ....
或设计表中修改.

OR:

Where UserID collate chinese_prc_CS_Ai =@userid and

nboys 2003-08-25
  • 打赏
  • 举报
回复

是数据库的规格或某一个表或某一个字段的排序规则定义为不区分大小写
yk1212 2003-08-25
  • 打赏
  • 举报
回复
谢谢,答案是对的,但是不知道collate chinese_prc_CS_Ai 具体含义是什么,难道sqlserver数据库的varchar类型字段比较都要这样写吗?那我们的项目很多后台数据库查询操作都要改了,郁闷啊。
hjb111 2003-08-25
  • 打赏
  • 举报
回复
select * from tbXXX where upper(col1) = 'AAA'

select * from tbXXX where lower(col1) = 'aaa'
pengdali 2003-08-25
  • 打赏
  • 举报
回复
select * from tbXXX where col1 collate chinese_prc_CS_Ai = 'aaa'

select * from tbXXX where col1 collate chinese_prc_CS_Ai = 'AAA'

34,576

社区成员

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

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