日度归档:2019年5月7日

mssql sqlserver sql脚本中的like关键字通配符及括号的使用简介


摘要:
下文讲述sql关键字like中通配符及括号的用法简介,如下所示:
实验环境:sql server 2008 R2



通配符简介

通配符是一个可以匹配任意内容的符号,
1.通配符%(百分号):
可以匹配任意长度的列内容

  select * from [maomao]
   where info like '%test%'
   ---以上脚本就是检测数据表中info列中内容包含test的数据行
   ---左百分号(%) 代表test的左边可以为任意字符
   ---右百分号(%) 代表test的右边可以为任意字符

2.下划线通配符
当我们需检索任意一个字符时,我们可以使用下划线进行检索,如下所示:

     select * from [maomao]
       where info like 't_'
      ----检索以t开头的并且长度为2个字符的数据行
   

3.方括号[]说明
方括号中内容通常为数据行需匹配的实际值。

   where info   LIKE '8[%]' 8%   ---匹配以8开头的,以百分号(%)结尾的两位字符
   where info   LIKE '8%'       ---匹配以8开头的任意字符
   where info LIKE '[_]t' _t    ---匹配2位字符,此字符为"_t"
   where info LIKE '_t'          ---匹配以t结尾的两位字符 
   where info  LIKE '[a-cdf]'  ---匹配数据内容为 a, b, c, d, f  五个字符的数据行
   where info  LIKE '[-acdf]'  ---匹配数据内容为 -, a, c, d, f  五个字符的数据行 
   where info LIKE '[ [ ]' [     ---匹配数据内容为[的数据行
   where info LIKE ']' ]          ---匹配数据内容为]的数据行
   

mssql sqlserver 检索数据表数据内容中包含%(百分号)的方法简介


摘要:
下文讲述将数据表指定列内容包含百分号(%)的数据行检索出来,具体方法如下所示:
实验环境:sql server 2008 R2


今天接到一个任务,把数据表中包含百分号(%)的行数据找出来,但是百分号在sql脚本中是一个通配符,我们必须对其进行转义,使sql脚本将其作为普通的字符进行匹配检索,如下所示:

   create table [maomao](info nvarchar(200))
    go
    
    insert into [maomao](info)values('sqlBlog'),(N'sql教程%相关'),
     ('sqlserver爱好者')
      go
      
      SELECT * FROM [maomao]
         WHERE info LIKE '%$%%' ESCAPE '$'  
        ---$为转义字符 $后的%为字符串% 

     go
   truncate table [maomao]
   drop       table [maomao]

mssql sqlserver sql脚本中的”中括号”的用法简介


摘要:
下文讲述sqlserver中sql脚本中的中括号的用法简介,如下所示:
实验环境:sql server 2008 R2


在sql脚本编写中,使用中括号的功能为:

区分sql关键字,当我们使用中括号将关键字括起时,代表此关键字中的内容为一个系统对象,
使用中括号可避免关键字在sql脚本中出现歧义,
当对一个关键字用中括号括起时,代表这关键字是一个对象名(列名、数据表名称、函数名称、存储过程名称等…)

例:

  ---例:查询数据表"tableName"中数据列 "select"的数据
  ---此脚本会运行出错,因为列名select被解析为关键字,所以此种情况我们必须采用中括号括起,避免出现歧义
  select select from tableName 


  -----------修改后的sql脚本--------
   select [select] as 'select ' from tableName