fyqt.net
当前位置:首页 >> CAsE whEn嵌套子查询 >>

CAsE whEn嵌套子查询

判定A表的数据是否存在B表,如果存在则显示存在,不存在则显示不存在 例如S#存在于SC表和student表中,判定s#是否都在student表中存在存在则显示存在,不存在则显示不存在,具体如下: from student select s#, case when s# in(select s# from ...

select case when id=1 then case when name='' then cols1 else '' end else '' end colfrom table where cols2 = case when id=1 then case when name='' then cols1 else '' end else '' end

这样是不可以的,你的表a里有多条数据的话(假如有三条),那么select 1 from table a,查出来就是三个一,这个时候会报错的,子查询返回的值不止一个。当子查询跟随在 =、!=、= 之后,或子查询用作表达式时,这种情况是不允许的。

不能放在where里边,像你这样的,用子查询去查会比较容易select * from where 字段 in(select case when 字段>1 then 1 else 0 end from 表)

可以通过看oracle的执行计划来看执行顺序及效率。 首先执行case when 中的子查询; 然后检索USERSBASICINFO表中id项; 最后查询USERSBASICINFO表的全表数据来找满足要求的数据。 这就是很基本的查询,中间用到case when,case when中又嵌套了子...

不知道是不是这个意思,你可以测试一下 select count(distinct t.ywid)||‘不正常数量' ||count(distinct case when t.ywid is null then cb.id else null end) ||'正常数量'||';' ||count(distinct case when t.yclx='2' then t.ywid else null ...

这一大串子代码太DT了,你想说啥?

Try this, it should be much more effective than yours SELECT BO.VESSEL, BO.VOY, BO.ETD, BO.PORTLOAD, BO.PORTVIA, BO.PORTDEST, CASE WHEN CTNSIZE = 20 then BKCTN.PNUM ELSE NULL END, CASE WHEN CTNSIZE = 40 then BKCTN.PNUM ELSE NUL...

mysql不太会。如果是sql server可以这样如下改写。如果语法与mysql只要相应修改一下即可 With fjztmct as (SELECT '0' as fjzt,N'未出售' as fjztmc UNION SELECT '1',N'已出售') SELECT fcdjCode,fch,dyh,cs,fjh,fjztmct.fjztmc,mpfmjg,dyglCod...

网站首页 | 网站地图
All rights reserved Powered by www.fyqt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com