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 '!';

    结果都是

    妥了。

     
     
     
     
  • 相关阅读:
    让Asp.NET的DataGrid可排序、可选择、可分页
    锁的一些概念
    我在delphi7下调用微软的Web Services的心得
    CRM 之 销售功能点分析[转]
    OFFICE InfoPath 教程
    Take me to your heartMichael Learns To Rock
    NetAdvantage(WebCombo)设置说明
    WebService小记
    Fading Like a Flower Roxette
    UndividedBon Jovi
  • 原文地址:https://www.cnblogs.com/adamgq/p/14318035.html
Copyright © 2011-2022 走看看