Excel 2010 SQL應用032 字元範圍的模糊匹配查詢
目錄
源資料表
學號 | 姓名 | 成績 |
20070519 | 何豔 | C |
20091884 | 何冬梅 | D |
20090790 | 馮晨 | E |
20071880 | 彭勤 | B |
20090562 | 葉倩 | C |
20091713 | 曾德昌 | C |
20081058 | 曹乾剛 | A |
20090018 | 雷小露 | B |
20071277 | 餘佳麗 | A |
20081809 | 趙林 | E |
20071927 | 鄧明昊 | A |
20060058 | 邱志娟 | A |
20091932 | 馬琴 | D |
20080751 | 王清秀 | C |
20081379 | 李曉斌 | C |
20080702 | 王川洪 | D |
20081079 | 肖妤翊 | E |
20060338 | 程飛娥 | B |
20061072 | 孫雙米 | B |
20081226 | 張玲 | A |
20070995 | 周榕珍 | B |
20090679 | 劉芙蓉 | E |
20091704 | 王亞坤 | C |
20081217 | 柴俊 | B |
20090532 | 隨婷婷 | D |
20080336 | 文森 | C |
20071031 | 欽麥翁姆 | E |
20081452 | 歐仁壽 | C |
20080375 | 王清容 | A |
20071469 | 羅秀麗 | C |
20090204 | 楊永豔 | D |
20060228 | 姚鵬 | D |
20060525 | 盧思彤 | A |
20091284 | 何剛 | B |
20061998 | 劉華平 | F |
20060304 | 馬曉冬 | D |
20060844 | 尹玫 | D |
20071318 | 李金龍 | E |
許多學校採用5分制的成績,這樣的成績計分通常採用A、B、C、D、E從高到低表示成績。如圖所示為某學校某科目的考試成績,查詢此次考試中成績為C以上(包含C)的同學,而不顯
示成績為D和E的同學。
解決方案
SELECT *
FROM [sheet1$]
WHERE 成績 LIKE '[A-C]'
模糊匹配中字元區間的表示
在LIKE運算子的匹配模式中,可以用方括號表示某一範圍的字元,其具體格式為:
[value1-value2]
其中,value1和value2分別代表指定範圍的最小值和最大值。value1必須小於或等於Value2,才能得到正確的結果,當value1等於value2時,就相當於運用了等號運算子查詢欄位值等於value1的資料。該特性類似於BETWEEN運算子。在英文匹配模式中,value1和Value2只能是A~Z的一個字元。如:[C-Q]的表示方法是正確的,而[AC-AD]的表示方式是錯誤的。
在Excel SQL中,英文字元大小是按照ASCⅡ碼進行排列的:A最小,Z最大。但是英文字元的比較是不區分大小寫的。因而,本例的實現也可以通過比較運算子實現,語句如下:
SELECT *
FROM [sheet1$]
WHERE 成績<='C'
但是相對於比較運算子,LIKE的模糊匹配更靈活且適應性更廣。比如,在某個英文單詞列表中要查詢第二個字母為"A"~“C”的所有英文單詞,可以用“_[A-C]%"實現。這種查詢是比較運算子不能實現的。
範圍匹配還可以用於匹配指定範圍以外的資料,其格式如下:
[!value1-value2]
如本例中,如果要查詢成績為C(包含C)以上的所有同學,還可以用以下SQL語句實現:
SELECT *
FROM [sheet1$]
WHERE 成績 LIKE '[!D-E]'
該語句表示成績為D~E範圍之外的資料。
一個方括號範圍匹配模式只能表示一個英文字元,如果要採用多個英文字元的範圍匹配模式,必須使用相應個數的方括號範圍匹配。
相關文章
- mybatis 對特殊字元的模糊查詢MyBatis字元
- sql 模糊查詢問題SQL
- mysql like查詢 - 根據多個條件的模糊匹配查詢MySql
- 如何處理 MySQL 萬用字元的模糊查詢MySql字元
- PostgreSQL一複合查詢SQL優化例子-(多個exists,範圍檢索,IN檢索,模糊檢索組合)SQL優化
- Oracle日期時間範圍查詢Oracle
- SQL-基礎語法 - 條件查詢 - 模糊查詢SQL
- SciPy 應用範圍
- elasticsearch的模糊查詢Elasticsearch
- mysql 模糊查詢MySql
- PLM系統應用範圍
- 正規表示式實現字元的模糊匹配功能示例字元
- java位運算子的應用範圍Java
- 根據時間範圍呼叫gitLab介面查詢Gitlab
- redis~有序集合處理ip範圍的查詢問題Redis
- SQL Server資料庫————模糊查詢和聚合函式SQLServer資料庫函式
- oracle 精確查詢和模糊查詢Oracle
- pgsql查詢優化之模糊查詢SQL優化
- MyBatis模糊查詢LIKEMyBatis
- mybatis - [07] 模糊查詢MyBatis
- python 當中的模糊查詢Python
- SQL 查詢 exist join in 的用法和相應的適用場景 (最佳化查詢)SQL
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- mongo的‘模糊匹配’Go
- SQL查詢的:子查詢和多表查詢SQL
- MySQL實驗: 實踐索引對全列匹配、最左字首匹配、範圍查詢等條件的影響以及瞭解髒讀、幻讀等MySql索引
- Mybatis中Oracle的拼接模糊查詢MyBatisOracle
- 匹配指定範圍整數正規表示式
- MYSQL DQL in 到底會不會走索引&in 範圍查詢引發的思考。MySql索引
- MySQL 唯一索引範圍查詢鎖下一個記錄的理解MySql索引
- 加密的手機號,如何模糊查詢?加密
- Python中使用MySQL模糊查詢的方法PythonMySql
- mybatis-模糊查詢like CONCATMyBatis
- [20190524]淺談模糊查詢.txt
- IndexPatternService 模糊查詢索引 fuzzyQuery分析Index索引
- [Uniapp] uni-combox模糊查詢APP
- int 被當作模糊查詢
- PostgreSQL DBA(192) - 整行模糊查詢SQL