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范围之外的数据。
    一个方括号范围匹配模式只能表示一个英文字符,如果要采用多个英文字符的范围匹配模式,必须使用相应个数的方括号范围匹配。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值