exists用法
表1和表2相关联的数据显示,其余的不显示。
select * from 表1 a where exists(select 1 from 表2 b where a.id=b.userid)
listagg 用法
select * from a
idname1张三1李四2王五
select id,listagg(name,',') within group(order by name) from a group by id
idlistagg(name,',') within group(order by name)1张三,李四2王五
名字太长,后面可以as 起别名
insert添加语句带条件判断
--这里是新增数据的时候,判断表中是否有这条数据。有则不添加、没有则添加
insert into 表名(字段名1,字段名1) select 传入的值1,传入的值2 from dual where not exists (select 1 from 表名 where 字段名1=传入的值1 and 字段名2=传入的值2);
--最原始的。其中exists表示匹配时执行添加语句,not exists表示不匹配时执行添加语句
insert into 表名(字段名) select 传入的值 from dual where exists(select 1 from 表名 where 条件)