在 oracle SQL 查询中使用字符串包含函数

新手上路,请多包涵

我正在使用 Oracle 数据库,我想知道如何在 varchar 类型列中找到行,其中该列的值具有包含某些字符的字符串。

我正在尝试这样的事情(这是我想要的一个简单示例),但它不起作用:

 select p.name
from   person p
where  p.name contains the character 'A';

我还想知道是否可以在示例查询中使用 chr(1234) 之类的函数,其中 1234 是 ASCII 码而不是 'A' 字符,因为在我的情况下,我想搜索我的数据库值,其中一个人的名字包含 8211 作为 ASCII 码的字符。

通过查询 select CHR(8211) from dual; 我得到了我想要的特殊字符。

例子:

 select p.name
from   person p
where  p.name contains the character chr(8211);

原文由 ibaneight 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 984
1 个回答

通过 _行_,我假设您的意思是表中的行 person 。您正在寻找的是:

 select p.name
from   person p
where  p.name LIKE '%A%'; --contains the character 'A'

以上是区分大小写的。对于不区分大小写的搜索,您可以执行以下操作:

 select p.name
from   person p
where  UPPER(p.name) LIKE '%A%'; --contains the character 'A' or 'a'

对于特殊字符,您可以执行以下操作:

 select p.name
from   person p
where  p.name LIKE '%'||chr(8211)||'%'; --contains the character chr(8211)

LIKE 运算符匹配一个模式。 Oracle 文档 中详细描述了此命令的语法。您将主要使用 % 符号,因为它意味着 _匹配零个或多个字符_。

原文由 ADTC 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进