You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server查询需求:如何排除以8或9结尾的航班号结果?

问题解决方法

你的SQL报错是因为NOT LIKE ('%8','%9')的写法不符合语法规范,LIKE运算符只能搭配单个匹配模式,不能直接用括号传多个值。要满足作业“仅用一个条件/运算符”的要求,有几种可行的写法:

方法1:字符范围匹配(适配SQL Server、Access等支持通配符范围的数据库)

SELECT ID_VOL, DATE_DEP, ESCALE
FROM VOL
WHERE ID_VOL NOT LIKE '%[89]'
  AND DATE_DEP BETWEEN '2005-09-01' AND '2006-12-30'

这里%[89]表示匹配以8或9结尾的字符串,加上NOT就排除了这类航班号,属于单个LIKE条件。

方法2:RIGHT函数结合NOT IN(通用多数数据库)

SELECT ID_VOL, DATE_DEP, ESCALE
FROM VOL
WHERE RIGHT(ID_VOL, 1) NOT IN ('8', '9')
  AND DATE_DEP BETWEEN '2005-09-01' AND '2006-12-30'

RIGHT(ID_VOL,1)提取航班号最后一位,用NOT IN直接排除8和9,这是单个条件,符合作业要求。

方法3:正则表达式(适配MySQL、PostgreSQL等支持正则的数据库)

MySQL写法:

SELECT ID_VOL, DATE_DEP, ESCALE
FROM VOL
WHERE ID_VOL NOT REGEXP '[89]$'
  AND DATE_DEP BETWEEN '2005-09-01' AND '2006-12-30'

PostgreSQL写法:

SELECT ID_VOL, DATE_DEP, ESCALE
FROM VOL
WHERE ID_VOL !~ '[89]$'
  AND DATE_DEP BETWEEN '2005-09-01' AND '2006-12-30'

正则[89]$匹配以8或9结尾的字符串,通过NOT REGEXP或!~实现排除,属于单个条件。

内容的提问来源于stack exchange,提问作者Alex d'Astous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 22:20:40