T-SQL LIKE运算符
在 Transact-SQL 中,LIKE 运算符用于搜索带有WHERE子句中指定模式的列。Transact-SQL 中的 LIKE 子句用于比较相同值以使用通配符运算符。
与 LIKE 运算符 结合使用的通配符有两个:
- % – 百分号表示零个、一个或多个字符。
 - _ – 下划线表示单个字符。
 
注意:MS Access 在百分号(%)的位置使用星号(*)符号,在下划线(_)的位置使用问号(?)代替。
百分号(%)表示’0’、’1′ 或更多字符,而下划线(_)表示一个字符。
语法:
根据 LIKE运算符,%(百分号)和_(下划线)的基本语法。
| 序号 | 查询 | 
|---|---|
| 1 | SELECT *\column-list FROM table_name WHERE column LIKE ‘XXXX%.’ | 
| 2 | SELECT *\column-list FROM table_name WHERE column LIKE ‘_XXXX.’ | 
| 3 | SELECT *\column-list FROM table_name WHERE column LIKE ‘_XXXX_.’ | 
| 4 | SELECT *\column-list FROM table_name WHERE column LIKE ‘XXXX_.’ | 
| 5 | SELECT *\column-list FROM table_name WHERE column LIKE ‘%XXXX%.’ | 
我们通过使用 AND 或 OR 运算符绑定 LIKE 运算符的条件。 “XXXX” 是数字或字符串值。
示例:
以下是一些示例,在其中我们显示了具有不同LIKE子句和模块’%’和’_’运算符的WHERE部分。
| 序号 | 语句及说明 | 
|---|---|
| 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以700开头的记录。
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 | 
极客教程