SQL 通配符操作符
SQL 通配符 是特殊的临时字符,用作单个字符或多个字符的替代。它们与SQL中的LIKE操作符一起使用,用于在字符串中搜索指定的模式或比较多个不同的字符串等。
这是一个区分大小写的操作符,这意味着它只会匹配与指定模式具有相同大小写的字符串。
以下是SQL中最常用的通配符:
序号 | 通配符和说明 |
---|---|
1 | 百分号 (% ) 匹配一个或多个字符。 注意 - MS Access 使用星号 (* ) 通配符代替百分号 (% ) 通配符。 |
2 | 下划线 (_ ) 匹配一个字符。 注意 - MS Access 使用问号 (? ) 来代替下划线 (_ ) 匹配任意一个字符。 |
百分号表示零个、一个或多个字符。下划线表示一个数字或一个字符。这些符号可以组合使用。
语法
百分号「%」和下划线「_」运算符的基本语法如下。
SELECT * FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT * FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT * FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT * FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT * FROM table_name
WHERE column LIKE '_XXXX_'
您可以使用AND或OR运算符组合N个条件。这里,XXXX可以是任何数字或字符串值。
在SQL中使用通配符
以下表格展示了在WHERE子句中使用LIKE运算符的不同通配符使用方式。
序号 | 语句和描述 |
---|---|
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 |
+----+----------+-----+-----------+----------+
以下代码块将显示所有SALARY以200开头的CUSTOMERS表中的记录。
SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
输出
这将产生以下结果。
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+----------+-----+-----------+----------+