oracle 中 ,字段m在字段n下有多个值对应,想让n在不同条件下等于不同的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 中 ,字段m在字段n下有多个值对应,想让n在不同条件下等于不同的值相关的知识,希望对你有一定的参考价值。

比如:
M N
1 CB
1 CCC
1 CE
2 CCC
2 CJ
2 CF

当m=1是,给n赋值cb,ccc,ce(比较大小,用max就可以)中最大的即n=ce
同理,当m=2时,n=cf

纠正个错误 当m=2时你的n应该等于CJ

例子
SQL> select * from tt;

M N
---------- ----------
1 CB
1 CCC
1 CE
2 CCC
2 CJ
2 CF

已选择6行。

SQL> select m,max(n) n from tt where m=&M group by m;
输入 m 的值: 1
原值 1: select m,max(n) n from tt where m=&M group by m
新值 1: select m,max(n) n from tt where m=1 group by m

M N
---------- ----------
1 CE

SQL> select m,n from (select m,n,row_number() over(partition by m order by n desc) maxchar from tt) where maxchar=1 and m=&M;
输入 m 的值: 2
原值 1: select m,n from (select m,n,row_number() over(partition by m order by n desc) maxchar from tt) where maxchar=1 and m=&M
新值 1: select m,n from (select m,n,row_number() over(partition by m order by n desc) maxchar from tt) where maxchar=1 and m=2

M N
---------- ----------
2 CJ
参考技术A select m,max(n) from table_name group by m;追问

这样不行,我前面还有个n=,要是写成n=(select max(n) from table_name group by m),就不对了

追答

select max(n) from table_name where m=2;
是这个意思?

你能把话说明白吗?

Oracle查询某个字段是不是同时包含几个值?

例如一个表中含有字段A和B,B中有三个值l,m,n,他们对应的A的值相同,我想查出同时包含l,m,n三个值的A的数据

参考技术A select distinct A from table where B in ('l','m','n')追问

这样的话我只能查出包含L或者M或者N的,不能查同时包含L.M,N的数据

追答

那就 like '%L%' AND LIKE '%M%' AND LIKE '%N%'

以上是关于oracle 中 ,字段m在字段n下有多个值对应,想让n在不同条件下等于不同的值的主要内容,如果未能解决你的问题,请参考以下文章

在Kibana的Discover面板中Time字段有多个值

一道在Oracle中建表的sql题 我是初学者 谢谢

oracle 怎么理解update 表 set 字段1 = 值,字段2 = 值 where 字段3 = 值

SpringDataJPA使用Oracle序列设置值:主键字段、非主键字段

数据库查询每个字段对应的最大值

oracle中怎么获得某一个字段不同值得个数,及每个值对应的另一个字段的不同值得个数