目录
源数据表
姓名 | 部门 |
刘静茹 | 市场部 |
何冬梅 | 市场部 |
王清容 | 市场部 |
[程飞娥] | 财务部 |
朱小林 | 财务部 |
罗秀丽 | 财务部 |
王川洪 | 生产部 |
[何刚] | 生产部 |
任章宪 | 生产部 |
周榕珍 | 生产部 |
雷小露 | 生产部 |
王清秀 | 物流部 |
[魏星] | 物流部 |
余佳丽 | 物流部 |
曾德昌 | 物流部 |
叶倩 | 人事部 |
袁琴琴 | 人事部 |
姚鹏 | 人事部 |
赵林 | 安全部 |
文森 | 安全部 |
杨怡 | 安全部 |
马晓冬 | 行政管理部 |
马冬梅 | 行政管理部 |
刘芙蓉 | 行政管理部 |
邵洪亮 | 行政管理部 |
[彭勤] | 行政管理部 |
刘华平 | 行政管理部 |
王亚坤 | 行政管理部 |
叶凤君 | 行政管理部 |
如图所示,该表为某公司员工名单,其中当员工娃名两端有方括号时,表示该员工已经离职。现公司要更新该员工名单,仅保留在职员工(即姓名两端没有方括号的所有员工)。
解决方案
SELECT *
FROM [sheet1$]
WHERE 姓名 LIKE '[[]%[]]'
模糊匹配中特殊字符的表示
在LIKE运算符的匹配模式中,一些特殊的字符在LIKE运算中有特殊的含义,如:方括号([ ])、百分号(%)、下画线(_)等。当字段值中包含这些字符时,就必须使用方括号将这
些字符括起来,以表示这些字符。如本例中,要表示含有方括号,就必须在方括号两端再加上方括号,才能正确地表示字段值中的方括号,比如左方括号(口)就必须在其两端再加上方括
号,即“[[]”。
本例中,姓名两端带有方括号的匹配模式语句表示如下:
'[[]%[]]'
该匹配模式就表示左方括号为开头,右方括号为终止,且其中有不限字符长度的任意字符。
而本例中要求查询姓名两端没有方括号的员工。在LIKE运算符之前加上NOT即可表示不满足匹配模式的记录。因而,在本例中用以下条件表达式表示姓名两端没有方括号的员工。
姓名 NOT LIKE '[[]%[]]'
同样,当需要表示百分号、下画线等在LIKE运算符中原本就有特殊意义的字符,必须加上方括号以表示该字符为其原本的含义。