扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
select sum(报废数) from biao where 订单号 = '订单号' and 物料编码 not like '99%';
惠城网站建设公司成都创新互联公司,惠城网站设计制作,有大型网站制作公司丰富经验。已为惠城上千家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的惠城做网站的公司定做!
这样写试一下,看看是否好用。
--oracle sqlselect * from table_nameminusselect * from table_name where instr(lower(value),'bc')0 and regexp_like(replace(lower(value),'bc'),'^([a-z])');以上代码加了lower就不区分大小写了,你根据自己情况来选择吧。
不包含任何符号,不知道你指的是不是包含任何字符。
如果不包括任何字段,可以这样写:
select * from 表名 where 字段 is not null;
如果是不包含一些你指定不要的特殊符叼,可以使用oracle的正则表达式方式来写,比如:
select * from 表名 where regexp_like(str, 'a\d+');
select count(*) from t where 字段 not like '%a%' and 字段 not like '%b%' and 字段 not like '%c%'
不包括可以用not in或者not exists
谈一下两者的区别:
not in 和not exists
not in 逻辑上不完全等同于not exists,如果你误用了not in,小心你的程序存在致命的BUG,请看下面的例子:
create table #t1(c1 int,c2 int);create table #t2(c1 int,c2 int);insert into #t1 values(1,2);insert into #t1 values(1,3);insert into #t2 values(1,2);insert into #t2 values(1,null);
select * from #t1 where c2 not in(select c2 from #t2);--执行结果:无select * from #t1 where not exists(select 1 from #t2 where #t2.c2=#t1.c2)
--执行结果:13
正如所看到的,not in出现了不期望的结果集,存在逻辑错误。如果看一下上述两个select 语句的执行计划,也会不同,后者使用了hash_aj,所以,请尽量不要使用not in(它会调用子查询),而尽量使用not exists(它会调用关联子查询)。如果子查询中返回的任意一条记录含有空值,则查询将不返回任何记录。如果子查询字段有非空限制,这时可以使用not in,并且可以通过提示让它用hasg_aj或merge_aj连接。
如果查询语句使用了not in,那么对内外表都进行全表扫描,没有用到索引;而not exists的子查询依然能用到表上的索引。所以无论哪个表大,用not exists都比not in 要快。
查询时直接写就可以
select * from table
where name = '/\:*?"';
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流