在oracle SQL查询中使用string contains函数

 六道轮回2602906501 发布于 2023-02-13 11:53

我正在使用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);

ADTC.. 72

通过线我假设你的意思是表中的行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文档中详细介绍了此命令的语法.您将主要使用该%符号,因为它意味着匹配零个或多个字符.

2 个回答
  • 通过线我假设你的意思是表中的行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文档中详细介绍了此命令的语法.您将主要使用该%符号,因为它意味着匹配零个或多个字符.

    2023-02-13 11:57 回答
  • ADTC的答案很好,但我找到了另一个解决方案,所以如果有人想要不同的东西,我会在这里发布.

    我认为ADTC的解决方案更好,但我的解决方案也有效.

    这是我找到的另一个解决方案

    select p.name
    from   person p
    where  instr(p.name,chr(8211)) > 0; --contains the character chr(8211) 
                                        --at least 1 time
    

    谢谢.

    2023-02-13 11:57 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有