T-SQL - LIKE 子句

  • 简述

    MS SQL ServerLIKE子句用于使用通配符将值与相似值进行比较。有两个通配符与 LIKE 运算符结合使用 -
    • 百分号 (%)
    • 下划线 (_)
    百分号代表零个、一个或多个字符。下划线代表单个数字或字符。这些符号可以组合使用。
  • 句法

    以下是 % 和 _ 的基本语法。
    
    SELECT *\column-list FROM table_name 
    WHERE column LIKE 'XXXX%' 
     
    or   
    SELECT *\column-list FROM table_name 
    WHERE column LIKE '%XXXX%'  
    or  
    SELECT *\column-list FROM table_name 
    WHERE column LIKE 'XXXX_'  
    or  
    SELECT *\column-list FROM table_name 
    WHERE column LIKE '_XXXX'  
    or  
    SELECT  *\column-list FROM table_name 
    WHERE column LIKE '_XXXX_' 
    
    您可以使用 AND 或 OR 运算符组合 N 个条件。XXXX 可以是任何数字或字符串值。
  • 例子

    以下是一些示例,显示 WHERE 部分具有带有“%”和“_”运算符的不同 LIKE 子句。
    序号 Statement & Description
    1
    WHERE SALARY LIKE '200%'
    查找以 200 开头的任何值
    2
    WHERE SALARY LIKE '%200%'
    查找任何位置有 200 的任何值
    3
    WHERE SALARY LIKE '_00%'
    查找第二个和第三个位置为 00 的任何值
    4
    WHERE SALARY LIKE '2_%_%'
    查找以 2 开头且长度至少为 3 个字符的任何值
    5
    WHERE SALARY LIKE '%2'
    查找以 2 结尾的任何值
    6
    WHERE SALARY LIKE '_2%3'
    查找第二个位置为 2 且以 3 结尾的任何值
    7
    WHERE SALARY LIKE '2___3'
    查找以 2 开头并以 3 结尾的五位数中的任何值
    考虑具有以下记录的 CUSTOMERS 表。
    
    ID  NAME       AGE       ADDRESS            SALARY 
    1   Ramesh     32        Ahmedabad          2000.00 
    2   Khilan     25        Delhi              1500.00 
    3   kaushik    23        Kota               2000.00 
    4   Chaitali   25        Mumbai             6500.00 
    5   Hardik     27        Bhopal             8500.00 
    6   Komal      22        MP                 4500.00 
    7   Muffy      24        Indore             10000.00 
    
    以下命令是一个示例,它将显示 CUSTOMERS 表中 SALARY 以 200 开头的所有记录。
    
    SELECT * FROM CUSTOMERS 
    WHERE SALARY LIKE '200%'; 
    
    上面的命令将产生以下输出。
    
    ID   NAME     AGE     ADDRESS       SALARY 
    1    Ramesh   32      Ahmedabad     2000.00 
    3    kaushik  23      Kota          2000.00