当前位置: 代码迷 >> Sql Server >> 简单的关于LIKE和LEFT的有关问题
  详细解决方案

简单的关于LIKE和LEFT的有关问题

热度:12   发布时间:2016-04-24 09:07:22.0
简单的关于LIKE和LEFT的问题
在使用SQL查询的过程中,如下SQL

SELECT * FROM TB WHERE NAME LIKE 'ABC@%'
SELECT * FROM TB WHERE LEFT(NAME,3)='ABC
SELECT * FROM TB WHERE SUBSTRING(NAME,1,3)='ABC

上面三个SQL都应该是查询NAME前三位是ABC的结果,
前提是数据库是肯定有ABC打头的数据,什么情况下LIKE的写法出结果,LEFT和SUBSTRING查询结果为空呢?
------解决思路----------------------
数据确实是ABC,还是指代的?
------解决思路----------------------

不应该呀,这也太奇怪了吧
------解决思路----------------------
4 位的年 LEFT()、SUBSTRING() 的长度参数应该是 4 而不是 3!
SELECT * FROM TB WHERE NAME LIKE '2015%' -- 比较前4个字符,匹配
SELECT * FROM TB WHERE LEFT(NAME,3)='2015' -- 3个字符和4个字符比较,不匹配
SELECT * FROM TB WHERE SUBSTRING(NAME,1,3)='2015' -- 3个字符和4个字符比较,不匹配
  相关解决方案