首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >甲骨文样模式匹配

问甲骨文样模式匹配
EN

Stack Overflow用户
提问于 2019-08-26 10:03:20
回答 4查看 85关注 0票数 0

我一张桌子上有10张唱片。在这些记录中,我需要使用单个Oracle查询执行以下3项操作(说单个查询的原因是,这是自动化框架的一部分,我需要保留一个通用查询)

操作1:获取所有10条记录

代码语言:javascript
复制
Select * from table_name where col01 like ('%')
<<10 records fetched>>

操作2:获取以字符串"Tivoli“开头的记录

代码语言:javascript
复制
Select * from table_name where col01 like ('Tivoli%')
<<1 record fetched>>

操作3:获取不以"Tivoli“开头的记录

代码语言:javascript
复制
         <<should give 9 records>>

我无法为操作3编写查询,但我不想使用单独的Not子句,因为这将使我完全创建一个单独的查询。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-08-26 10:12:21

然后,您可以使用minus集运算符:

代码语言:javascript
复制
Select * from table_name -- all records
minus
Select * from table_name where col01 like 'Tivoli%' 
-- records for col01 column starts with Tivoli 

如果所有类型的Tivoli(如TIVOLI..。或者tIvOli或者..。)应不敏感地包括病例,然后您可以将该条件视为

where lower(col01) like 'tivoli%'

票数 0
EN

Stack Overflow用户

发布于 2019-08-26 10:50:31

您可以使用:

代码语言:javascript
复制
select *
from table_name
where col01 not like 'Tivoli%'

如果col01可以是NULL,那么您需要考虑到这一点:

代码语言:javascript
复制
select *
from table_name
where col01 not like 'Tivoli%' or col01 is null;
票数 0
EN

Stack Overflow用户

发布于 2019-08-26 11:34:34

代码语言:javascript
复制
Select * from table_name where not (col01 like ('Tivoli%') )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57655752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档