MSSERVER安装时默认大小写不敏感SELECT * FROM TAB WHERE NAME='ABC' AND ASCII(NAME)=ASCII('ABC')
解决方案 »
- 列出旗下所有的内容,怎样最省资源?
- ////////SQL 2008 //////////
- 月份改变,怎么样使数据列自动递加,谢谢
- 【!晕呀!单表查询我都搞不懂~~~!】
- 求助,关于从表A中查询大量符合条件的数据,添加到表B
- 如何编写"获取前十个最新降价的产品"?
- 想跟踪表中某一行记录中特定字段的值的前后变化,急!!!!!!
- SQL2000恢复与备份
- 有人会用SQLConfigDataSource()这个东东吗?SQLServer2000的联机丛书中有.在线等...
- 数据库被逻辑删除的字段避居然影响程序的运行???呜.....出手帮忙哪
- 请问怎么样保存单位中的平方??如平方米:M2??
- SQL语名,求最大值的记录
FROM tab
WHERE CONTAINS(name, ' "ABC" ')
1、select * from tab
where binary_checksum(name)=binary_checksum('ABCDE')
2、select * from tab
where name COLLATE SQL_Latin1_General_CP1_CS_AS ='ABCDE'
3、select * from tab
where cast(name as varbinary(10))=cast('ABCDE' as varbinary(10))
能返回,“Abc”,"ABc"
FROM TAB WHERE (ASCII(SUBSTRING(NAME, 1, 1)) = ASCII('A')) AND (ASCII(SUBSTRING(NAME, 2, 1))
= ASCII('B')) AND (ASCII(SUBSTRING(NAME, 3, 1)) = ASCII('C'))
http://www.csdn.net/Develop/read_article.asp?id=13150
:)
问题已经得到解决了,我的方法是:把你想检索的列的排列规则改为:Chinese_PRC_CS_AS
在“select * from tab
where name COLLATE SQL_Latin1_General_CP1_CS_AS ='ABCDE'”中的
"COLLATE SQL_Latin1_General_CP1_CS_AS "是什么意思?
谢谢!
在“select * from tab
where name COLLATE SQL_Latin1_General_CP1_CS_AS ='ABCDE'”中的
"COLLATE SQL_Latin1_General_CP1_CS_AS "是什么意思?
谢谢!
µÚÈýÖÖ·½·¨ºÃÏó²»Ðеģ¿
but i think the third solution can't work.
try this:select * from sysobjects where name COLLATE SQL_Latin1_General_CP1_CS_AS ='sysobjects'select * from sysobjects
where cast(name as varbinary(10))=cast('sysobjects' as varbinary(10))
SQL_Latin1_General-CP1:英语字符集 代码页1252
CS:区分大小写
AS:区分重音
来进行排序。x_zing(阿浩) :
对系统表这个函数不起作用,你可以看一下,sysobjects表中name字段的数据类型是sysname,而不是varchar/char/nvarchar,所以不能这样用,我不知道这个sysname字段类型是怎么回事,你用以下语句可以发现用它做cast的效果:
select cast(name as varbinary(2000)),cast('sysobjects' as varbinary(2000)) from sysobjects where name='sysobjects'结果:
0x7300790073006F0062006A006500630074007300
0x7379736F626A65637473显示结果是不同的。所以这种方法不能用在这个字段上,用在varchar/char/nvarchar上就不会有问题。