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