重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
按下面语句查询:
为临夏等地区用户提供了全套网页设计制作服务,及临夏网站建设行业解决方案。主营业务为网站建设、成都网站建设、临夏网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
select Time from table1 where CONVERT(CHAR(100), Time, 111) like '2012/11%';
问题解决,记得采纳。
SqlServer英文单词全字匹配
环境:Vs2013+Sql
Server2012
问题:现在数据库记录如下:
Sentence列保存的是英文的句子,我现在想找出所有包含“I”(单词)的句子,如果我用
Sentence
like
'%I',作为条件的话,那么像上图选中的那条有个单词“it“(不区分大小写的情况下),它也会被Select出来,而我只想找出含有“I”这个单词的句子的记录。
解决:SqlServer提供了模式匹配,类似于正则,详细内容查阅相关文档。
我先写了一个这样的条件:
Sentence
like
'%[^a-zA-Z]I[^a-zA-Z]%'
发现上图里的第一条,也就是“I
would...",“I”开头的单词没有被Select出来,也就是说,这个条件所匹配的是前面要一个非字母的符号(没有字符是不可以的),那么同样道理,最后面也需要一个非字母的符号(没有字符也是不可以的),所以可改成:
Sentence
like
'%[^a-zA-Z]I[^a-zA-Z]%'
or
Sentence
like
'I[^a-zA-Z]%'
or
Sentence
like
'%[^a-zA-Z]I'
不过感觉这样比较麻烦,如果把Sentence前后各加一个非字母的数字,像原本“I
would
like
I",把它变成“
I
would
like
I
"(前后各加一个空格),这样就能匹配最开始写的那个条件了:
'
'+Sentence+'
'
like
'%[^a-zA-Z]I[^a-zA-Z]%'
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
declare @str varchar(max)='6688 sasaaaa wty',@sql varchar(max)
set @sql='select * from mingTest where 1=0 '
;with cte as(select name=SUBSTRING(A.[str],number,CHARINDEX(' ',A.[str]+' ',number)-number) from A JOIN master..spt_values ON type='p' and number between 1 and LEN(@str)
WHERE CHARINDEX(' ',' '+A.[str],number)=number)
select @sql=@sql+'or [str] like ''%'+name+'%''' from cte where name''
EXEC @sql
可以用左连接(left join)查询出未匹配的数据。原理是左连接时,将输出左表的所有记录,如果右表没有匹配的记录,则用null替代右表的字段值,这样在where子句里筛选出这些右表字段值为null记录,即可查询出未匹配的数据。请参考下列实例:
查出没有参加课程号为"A01"考试的学生资料
数据结构
student(sid,sname)
score(sid,cid,grade)
SQL语句
select a.* from student a left join
(select distinct sid from score where cid='A01') b
on a.sid=b.sid where b.sid is null;