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
例子
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在不同条件下等于不同的值的主要内容,如果未能解决你的问题,请参考以下文章
oracle 怎么理解update 表 set 字段1 = 值,字段2 = 值 where 字段3 = 值