T-SQL Like运算符

精华
小牛编辑
136浏览
2023-03-14

在 Transact-SQL 中,LIKE 运算符用于搜索带有 WHERE 子句的列中指定的模式。Transact-SQL 中的 LIKE 子句用于比较相同的值以使用通配符运算符。

两个通配符与 LIKE 运算符结合使用:

  • % - 百分号代表零、一个或一些字符。
  • _ - 下划线符号代表单个字符。

注意:MS Access 使用星号 (*) 代替百分号 (%) 和问号 (?) 而不是下划线 (_)。

百分号代表 LIKE 运算符中的“0”、“1”或更多字符。下划线符号代表一个字符。

语法:
根据 LIKE 运算符的 %(百分号)和 _(下划线)的基本语法。

1    SELECT [*|column1,column2,....] FROM table_name WHERE column LIKE 'XXXX%.'
2    SELECT [*|column1,column2,....] FROM table_name WHERE column LIKE '_XXXX.'
3    SELECT [*|column1,column2,....] FROM table_name WHERE column LIKE '_XXXX_.'
4    SELECT [*|column1,column2,....] FROM table_name WHERE column LIKE 'XXXX_.'
5    SELECT [*|column1,column2,....] FROM table_name WHERE column LIKE '%XXXX%.'

使用 AND 或 OR 运算符绑定 LIKE 运算符的条件。“XXXX”是数字或字符串值。

例子:
下面是一些示例,其中我们展示了 WHERE 部分具有不同的 LIKE 子句以及模式%_运算符。

编号 语句 说明
1 WHERE SALARY LIKE ‘300%.’ 它查找任何以 300 开头的值
2 WHERE SALARY LIKE ‘%300%.’ 它查找在任何位置有 300 的任何值
3 WHERE SALARY LIKE ‘_000%.’ 它查找任何在第二、第三和第四位置具有 000 的值
4 WHERE SALARY LIKE ‘3%%.’ 它查找任何以 3 开头且长度至少为 3 个字符的值
5 WHERE SALARY LIKE ‘%4’ 它查找任何以 4 结尾的值
6 WHERE SALARY LIKE ‘_3%4.’ 它查找任何在第二个位置有 3 并以 4 结尾的值
7 WHERE SALARY LIKE ‘3___4’ 它查找以 3 开头并以 4 结尾的五位数字中的任何值

假设 CUSTOMERS 表具有以下记录 -

ID NAME AGE ADDRESS SALARY
01 William 32 Karachi 7000.00
02 Avery 24 London 3000.00
03 Jackson 34 Paris 1200.00
04 Harper 20 New York 1500.00
05 Ella 22 Islamabad 3400.00
06 Monty 23 Turkey 4400.00
07 Mason 26 Saudi Arabia 5050.00

示例 1:
该命令是一个示例,它将显示 CUSTOMERS 表中 SALARY 以 200 开头的所有记录。

SELECT * FROM CUSTOMERS   
WHERE SALARY LIKE '700%';

上面的命令将产生以下输出 -

ID    NAME    AGE    ADDRESS    SALARY
01    William    32    Karachi    7000.00

示例2:
下面的命令是示例,它显示 CUSTOMERS 表中 SALARY 以 50 结尾的所有记录。

SELECT * FROM CUSTOMERS   
WHERE SALARY LIKE '%50';

执行上面语句得到以下结果 -

ID    NAME    AGE    ADDRESS    SALARY
07    Mason    26    Saudi Arabia    5050.00

示例3:
给定的命令是一个示例,它可以显示 CUSTOMERS 表中 SALARY 以 1 开头并以 0 结尾的所有记录。

SELECT * FROM CUSTOMERS   
WHERE SALARY LIKE '1___0'';

执行上面语句得到以下结果 -

ID    NAME    AGE    ADDRESS    SALARY
04    Harper    20    New York    1500.00