oracle查询通配符做普通字符使用

在where子句中,通配符可与like条件一起使用。在Oracle中:
  %(百分号): 用来表示任意数量的字符,或者可能根本没有字符。
  _(下划线): 表示确切的未知字符。
  ?(问号): 用来表示确切的未知字符。
  #(井号): 用来表示确切的阿拉伯数字,0到9。
  [a-d](方括号):用来表示字符范围,在这里是从a到d。
  单引号('):在Oracle中,应该只使用单引号将文本和字符和日期括起来,不能使用引号(包括单双引号)将数字括起来。
  双引号("):在Oracle中,单双引号含义不同。双引号被用来将包含特定字符或者空格的列别名括起来。双引号还被用来将文本放入日期格式。
  撇号('):在Oracle中,撇号也可以写成彼此相邻的两个单引号。为了在供应商名字中间查找所有带撇号的供应商名字,可以这样编写代码

   &符号:在Oracle中,&符号常用来指出一个变量。

例如,&fox是一个变量,稍微有点不同的一种&& fox。每当&fox出现在Oracle脚本中时,都会要求您为它提供一个值。而使用&&fox,您只需要在& &fox第一次出现时为它提供变量值。如果想将&符号作为普通的符号使用,则应该关闭这个特性。要想关闭这个特性,可以运行以下的命令: set define off ,这是一个SQLplus命令,不是一个SQL命令。SQLplus设置了SQL在Oracle中运行的环境。
  双竖线(||):Oracle使用双竖线表示字符串连接函数。
  星号(*):select *意味着选择所有的列,count(*)意味着计算所有的行,表示通配符时,表示0个或任意多个字符。
  正斜杠(/):在Oracle中,用来终止SQL语句。更准确的说,是表示了“运行现在位于缓冲区的SQL代码”。正斜杠也用作分隔项。

SQL> select * from test;

ID name

---------- --------------------  

 1 baaab   

 2 ba_ab 

 3 ba%ab


SQL> select * from test where name like '%_%'   以这种查询我们得到的是整个表里面的任意一个字符后面有ab的信息,这样以上三条信息都符合要求,都能被查询出来,应该改成

SQL> select * from test where name like '%\_%' escape '\'; 这样一来,我们查询到的结果应该是,含有'_'这个字符的所有信息,也就是最后结果应该是

2  ba_ab

所以我们在将oracle里面一些特定的通配符用作普通字符是,一定别忘了加escape关键字,它的作用如下:

1.使用 ESCAPE 关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。

2.ESCAPE 'escape_character' 
允许在字符串中搜索通配符而不是将其作为通配符使用。escape_character 是放在通配符前表示此特殊用途的字符。 
select * from a WHERE name LIKE '%/%ab' ESCAPE '/'




  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值