sql如何判断两字符串完全相等,包括大小写也一样

我用SQL语句where password='abc'的时候,发现若password为'ABC'它也能查询到记录,这是我不希望的,我想要精确比较两字符串相等,包括大小写,请问如何写?

方法1: where cast(password as varbinary) = cast( 'abc' as varbinary)
方法2:where password collate Chinese_PRC_CS_AS_WS ='abc'
注:方法1是转换成二进制再比较,由于大小写的ASC码不同所以区分大小写
方法2是利用排序规则,也是基于二进制。在字段后加上collate Chinese_PRC_CS_AS_WS
不理解欢迎追问!
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-20
1> SELECT * FROM tab WHERE val = 'abc123';
2> go
id val
----------- ----------
1 ABC123

(1 行受影响)

SQL Server 大小写不敏感的。

处理方式: 使用 COLLATE Chinese_PRC_CS_AS

1> SELECT * FROM tab WHERE val = 'abc123' COLLATE Chinese_PRC_CS_AS;
2> go
id val
----------- ----------

(0 行受影响)

1> SELECT * FROM tab WHERE val = 'ABC123' COLLATE Chinese_PRC_CS_AS;
2> go
id val
----------- ----------
1 ABC123

(1 行受影响)
第2个回答  2012-12-20
where convert(varbinary, password)=convert(varbinary, N'asd')
转换成二进制 在比较来自:求助得到的回答
第2个回答  2012-12-20
你可以用lower或者upper转换

sql如何判断两字符串完全相等,包括大小写也一样
方法1: where cast(password as varbinary) = cast( 'abc' as varbinary)方法2:where password collate Chinese_PRC_CS_AS_WS ='abc'注:方法1是转换成二进制再比较,由于大小写的ASC码不同所以区分大小写 方法2是利用排序规则,也是基于二进制。在字段后加上collate Chinese...

sql怎样判断两字符串完全相等,大小写一样?
方法1: where cast(password as varbinary) = cast( 'abc' as varbinary)方法2:where password collate Chinese_PRC_CS_AS_WS ='abc'注:方法1是转换成二进制再比较,由于大小写的ASC码不同所以区分大小写 方法2是利用排序规则,也是基于二进制。在字段后加上collate Chinese...

sql怎样判断两字符串完全相等,大小写一样?
判断sql两字符串完全相等,大小写一样的方法有以下几种:1,sql怎样判断两字符串完全相等,大小写一样 2,比较前把这两个变更打印出来看一下。比较简单也比较好操作。

SQL Server字符串区别大小写方法
法Ⅰ 转换成二进制再比较 由于大小写的ASC码不同 例如 select from T_User where cast(field as varbinary) = cast( Admin as varbinary)法Ⅱ 利用排序规则 也是基于二进制 在字段后加上collate Chinese_PRC_CS_AS_WS 如 select from T_User where userName= admin AND PASSWORD collate Chinese_...

oracle sql 区分大小写吗
SQL语法的关键字不区分大小写,比如select和SELECT都是一样的,不过字符串是区分大小写的'ABC'和'abc'就不一样了

SQL语句字符串不区分大小写怎么办?
不会吧?应该有2笔记录才是:SELECT * FROM userinfo WHERE username in ('admin','ADMIN');

插入记录,判断验证码是否正确代码
你来点简单的 建一个变量 然后把session赋值给他;在获取页面输入的验证码 在if()判断 2个字符串是否完全相同 也可以不区分大小写

sql 正则表达式匹配
match_option的取值如下:‘c’ 说明在进行匹配时区分大小写(缺省值); 'i' 说明在进行匹配时不区分大小写; 'n' (.)点号能表示所有单个字符,包括换行(俺还不知道什么地方有用到换行.只知道sql里面可以用chr(10)表示换行. 'm' 字符串存在换行的时候当作多行处理.这样$就可匹配每...

JavaScript判断包含如何不区分大小写
两个sql查询结果相同;如果必要区分的话可以这样:select * from table t where binary t.colum1 like concat('%','A','%');建表时,栏位加上标识也可以区分大小写:create table t{ code varchar(10) binary } c++怎样让判断语句不区分大小写 一种办法是用或,比如x == 'A' || x =...

MySql,oracle,sql中对于大小写字符串的查询怎么设置?
字符串都是区分大小写的,都是用upper(字符串)转大写 lower(字符串)转小写

相似回答