在Sql Server中如何进行大小写敏感的字符串比较? upper(@var)=upper(@var)或lower(@var)=lower(@var)lower 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 UCASE( )1、UPPER( ) 将字符串转换为大写字母 SELECT * FROM employeeWHERE UPPER(lname) = 'SMITH'将 lname 列的内容转换为大写字母后再与特定的值进行比较(以避免当搜索区分大小写时不匹配)。有关在 SQL Server 中区分大小写的详细信息,请参见查询设计器注意事项。区分大小写SQL Server 数据库中的文本信息可以用大写字母、小写字母或二者的组合进行存储。例如,姓氏可以"SMITH"、"Smith"或"smith"等形式出现。数据库是否区分大小写取决于 SQL Server 的安装方式。如果数据库区分大小写,当搜索文本数据时,必须用正确的大小写字母组合构造搜索条件。例如,如果搜索名字"Smith",则不能使用搜索条件"=smith"或"=SMITH"。另外,如果服务器被安装成区分大小写,则必须用正确的大小写字母组合提供数据库、所有者、表和列的名称。如果提供的名称大小写不匹配,则 SQL Server 返回错误,报告"无效的对象名"。当使用关系图窗格和网格窗格创建查询时,查询设计器始终正确地反映出服务器是否区分大小写。但是,如果在 SQL 窗格中输入查询,则必须注意使名称与服务器解释名称的方式相匹配。如果服务器是用不区分大小写的选项安装的,则可以用大小写字母的任意组合输入数据库对象标识符和搜索条件。提示 若要确定服务器是否区分大小写,请执行存储过程 sp_server_info,然后检查第 18 行的内容。如果服务器是用不区分大小写的设置安装的,则 sort_order 选项将设置为"不区分大小写"。可以从查询分析器运行存储过程。这里还有更详细的内容,如果想知道的更多,可以参考一下:http://expert.csdn.net/Expert/TopicView1.asp?id=1171622 转换成varbinary比较就可以了,看下面的例子:======================================================DECLARE @user_password varchar(12)IF CAST(@user_password AS varbinary(12))=CAST('BamBi2000' AS varbinary(12))PRINT 'Password match' ELSEPRINT 'Password mismatch' ======================================================注意,只可以在SQL 2000中用 to seth99:在SQL7.0中如何处理? 在查询用户名及其密码时应该区分大小写。验证用户名及其密码是否匹配时我是用存储过程来实现的。‘=’不区分大小写 试试看用CONVERT吧,==============================格式:CONVERT(data_type[(length)],expression[,style])Sample:CONVERT(varbinary(12),'BamBi2000')==============================将要比较的字符转换成varbinary再比较 前面的CAST好像也可以在SQL 7下用,我这没有SQL 7,你试试。 航班综合查询 咨询一个联合查询的问题 SqlServer中如何保存双引号??? 如何修改时间 遇到一个困难查询的问题 sqlserver里怎么查看所有未关闭的游标? 我的MSDE安装不了. 改写动态查询的存储过程,给个思路好么 附加数据库出错,急求专家援助!!! 关于qt creator5.11.2使用及安装问题记录 存储过程中的一个问题?高手请进! 请问哪位知道只有一个数据文件时的恢复方法?我看了一些文章,都不成功!
UPPER( ) 将字符串转换为大写字母 SELECT * FROM employee
WHERE UPPER(lname) = 'SMITH'
将 lname 列的内容转换为大写字母后再与特定的值进行比较(以避免当搜索区分大小写时不匹配)。有关在 SQL Server 中区分大小写的详细信息,请参见查询设计器注意事项。
区分大小写
SQL Server 数据库中的文本信息可以用大写字母、小写字母或二者的组合进行存储。例如,姓氏可以"SMITH"、"Smith"或"smith"等形式出现。数据库是否区分大小写取决于 SQL Server 的安装方式。如果数据库区分大小写,当搜索文本数据时,必须用正确的大小写字母组合构造搜索条件。例如,如果搜索名字"Smith",则不能使用搜索条件"=smith"或"=SMITH"。另外,如果服务器被安装成区分大小写,则必须用正确的大小写字母组合提供数据库、所有者、表和列的名称。如果提供的名称大小写不匹配,则 SQL Server 返回错误,报告"无效的对象名"。当使用关系图窗格和网格窗格创建查询时,查询设计器始终正确地反映出服务器是否区分大小写。但是,如果在 SQL 窗格中输入查询,则必须注意使名称与服务器解释名称的方式相匹配。如果服务器是用不区分大小写的选项安装的,则可以用大小写字母的任意组合输入数据库对象标识符和搜索条件。提示 若要确定服务器是否区分大小写,请执行存储过程 sp_server_info,然后检查第 18 行的内容。如果服务器是用不区分大小写的设置安装的,则 sort_order 选项将设置为"不区分大小写"。可以从查询分析器运行存储过程。
这里还有更详细的内容,如果想知道的更多,可以参考一下:http://expert.csdn.net/Expert/TopicView1.asp?id=1171622
======================================================
DECLARE @user_password varchar(12)IF CAST(@user_password AS varbinary(12))=CAST('BamBi2000' AS varbinary(12))
PRINT 'Password match'
ELSE
PRINT 'Password mismatch'
======================================================
注意,只可以在SQL 2000中用
在查询用户名及其密码时应该区分大小写。验证用户名及其密码是否匹配时我是用存储过程来实现的。‘=’不区分大小写
==============================
格式:CONVERT(data_type[(length)],expression[,style])
Sample:CONVERT(varbinary(12),'BamBi2000')
==============================
将要比较的字符转换成varbinary再比较