PL/SQL

SQL进阶教程之1.8谓词

2021-11-17  本文已影响0人  anti酱

谓词

用法1:查询表中“不”存在的数据
适用情况:找出表中不存在的项目
案例:找出各会议未参会的人员
知识点:先把所有可能性找出来,然后用not exists排除某条件,not exists 可以相当于except

表meetings 排除参加会议的人得到未参会人员

用法2:全称量化
适用情况:找出表中所有不满足某条件的项
案例1:找出没有一个科目分数不满50分的学生
知识点:同样,先把所有可能性找出来,然后用not exists排除某条件,not exists 可以相当于except

表testscores 排除相应条件以外的学生

案例2:找出所有数学在80分,语文在50分以上的学生

排除多条件

案例3:找出完成工序1的工程,后面的工程就算完成也不属于符合这类条件

表project

方法1:groupby 分组后聚合,having筛选得到满足条件的工程

方法1:条件限定

方法2:双重否定,not exists 是第一层否定,status<>限定条件构成第二重否定,双重否定表肯定,即是得到等于限定条件的数据

方法2:双重否定表肯定

用法3:对列进行量化
适用情况:行可以增减,但列删减会有影响
案例1:查询”都是1“的行
知识点:any/all等比较谓词用法,比所有都大或小

表arraytbl 找出所有列都为1的行

案例2:查询”存在9“的行
知识点:用in表示或的关系,即存在1个及其以上相应值

找出存在9的行

案例3:查询”均为null“的行
知识点:由于null不是数值,要先coalesce所有列后再用is null限定条件

找出所有列都为null的行
上一篇下一篇

猜你喜欢

热点阅读