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 |