gpt4 book ai didi

sql - 通配符搜索数字范围

转载 作者:行者123 更新时间:2023-12-03 16:48:38 25 4
gpt4 key购买 nike

我正在尝试过滤掉包含客户互联网计划的列 (plan_name)。例如(200GB 快速无限、免费附加邮箱、无限 VDSL...)。我特意要过滤掉没有任何数字的计划 .该列的类型为 varchar2,我正在查询 Oracle 数据库。我编写了以下代码:

SELECT *
FROM plans
WHERE plan_name NOT LIKE '%[0-9]%'

但是,此代码仍会快速返回 200GB 之类的计划,其中包含数字?谁能解释这是为什么?

最佳答案

甲骨文like语法不支持您尝试的模式匹配类型。这是 SQL Server 语法。 Oracle 将该模式解释为文字 '[0-9]' (显然,类似 '200GB' 的内容不匹配)。

但是,与 SQL Server 不同的是,Oracle 通过 regexp_* 对正则表达式有适当的支持。职能。如果您想要不包含数字的值,您可以执行以下操作:

where not regexp_like(plan_name, '\d')

关于sql - 通配符搜索数字范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62438855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com