查询所有姓张的同学 Select * from student where left(sName,1)=‘张‘ 看上去很美,如果改成查询名字中带亮的学生怎么做? 换一种做法 like Select * from student where sName like ‘张%’ 会吧所有姓张的都查询到,现在我想查询姓张并且名字是一个字的学生? Select * from student where sName like ‘%亮%’ ^只有MSSQL Server支持,其他DBMS用not like。 通配符 %多字符匹配的通配符,它匹配任意次数(零或多个)出现的任意字符 通配符_ 单字符匹配,它匹配单个出现的字符 [] 只匹配一个字符 并且这个字符必须是[]范围内的 [0-9] [a-z] not与like一起使用:not like …. 要通配_、%、[、^这些字符怎么办?[_]、[%]、[ [ ]、^(不需要放到中括号里,因为^只有放到中括号中才认为是通配符) 注意:like 'a%'与like'%a'的区别。 前者查询首字符为a的,后者查询末位为a的。 --通配符:_ 、 % 、 [] 、 ^ -- _ 表示任意的单个字符 --姓张,两个字的。 select * from MyStudent where fname like '张_' --姓张,三个字的 select * from MyStudent where fname like '张__' -- % 匹配任意多个任意字符 --无论姓名字数,只要第一个字符是'张'的就查询出来 select * from MyStudent where fname like '张%' select * from MyStudent where fname like '张%' and len(fname)=2 -- [] 表示筛选,范围。 --查询出姓名中包含某些值的那些人 select * from TblStudent where tsname like '张[0-9]妹' select * from TblStudent where tsname like '张_妹' select * from TblStudent where tsname like '张[a-z]妹' select * from TblStudent where tsname like '张[a-z0-9]妹' select * from TblStudent where tsname like '张[^0-9]妹' select * from TblStudent where tsname not like '张[0-9]妹' update TblStudent set tsname=replace(tsname,'(女)','') --通配符放到[]中就转义了就不认为是通配符了。 --查询出姓名中包含%的那些人 select * from TblStudent where tsname like '%[%]%' --自己指定一个转义符 --WHERE ColumnA LIKE '%5/%%' ESCAPE '/' select * from TblStudent where tsname like '%/]%' ESCAPE '/' select * from TblStudent where tsname like '%/[%' ESCAPE '/' select * from TblStudent where tsname like '%/[%/]%' ESCAPE '/' (责任编辑:IT) |