zoukankan      html  css  js  c++  java
  • SQL通配符

    通常我们只是用 %  作为通配符,用来表示任意个字符。

    但sql中的通配符还有 下划线 _ ,用来标识任意一个字符

    实例

    SELECT * FROM Websites
    WHERE name LIKE '_oogle';

    执行输出结果:

     
     
    问题再延伸,如果我们数据中有包含下划线的字符,那么该怎么处理呢?
     
    --需求,找到name中包含下划线的内容,即 把前两条筛出来
    with x as
    (select '_haha' as name from dual  union all
    select '\_2haha'  as name from dual  union all
    select '2haha' as name from dual
    )
    select * from x where name like '%_%';

     不对,这里的下划线别理解成了通配符

    -- 那么使用右斜杠+下划线的模式来转译他,可以么?
    with x as
    (select '_haha' as name from dual  union all
    select '\_2haha'  as name from dual  union all
    select '2haha' as name from dual
    )
    select * from x where name like '%\_%';

     依然不对,这里斜杠并没有起到转译的作用。

    查了下,自己以前不认识这个关键字。ESCAPE

    -- 使用ESCAPE 关键字来表示【这个字符后边的东西,该被识别成普通字符。】?
    with x as
    (select '_haha' as name from dual  union all
    select '\_2haha'  as name from dual  union all
    select '2haha' as name from dual
    )
    select * from x where name like '%\_%' ESCAPE '';

     结果对了。那么换个别的字符呢?

    with x as
    (select '_haha' as name from dual  union all
    select '\_2haha'  as name from dual  union all
    select '2haha' as name from dual
    )
    select * from x where name like '%?_%' ESCAPE '?';
    ---
    
    with x as
    (select '_haha' as name from dual  union all
    select '\_2haha'  as name from dual  union all
    select '2haha' as name from dual
    )
    select * from x where name like '%!_%' ESCAPE '!';

    结果都是

    妥了。

     
     
     
     
  • 相关阅读:
    第八周课程总结&实验报告(六)
    第七周课程总结&实验报告(五)
    第六周&java实验报告四
    第五周课程总结&试验报告(三)
    第四周作业
    2019春总结作业
    第二周基础作业
    第三周作业
    2019期末总结
    第十四周课程总结 & 实验报告
  • 原文地址:https://www.cnblogs.com/adamgq/p/14318035.html
Copyright © 2011-2022 走看看