select A ,B (select D fron table where *在这里如果查询出来的A=‘1’或A=‘2’后面判断的语句不一样,例如A='1'就执行number=100。 A=‘2’就去执行number=200*) as C from F
不知道这个怎么实现的。
不知道这个怎么实现的。
解决方案 »
- oracle 11.2.0 tnsping ORCL; 报错
- 命令未正确结束.......
- 还是调试问题,能够创建 不能编译通过
- 如何从多条记录中任取一条记录
- 向各位Oracle高手请教
- 如果按获取表的列名,并按实际顺序排列?
- 如何用SplPlus成功创建一个1700多行的存储过程,直接copy只能显示一部分。是不是可以执行存储过程的名字,不用把代码全copy到SplPlus?
- update问题?
- 在线等!!!请问如何把ORACLE81或更高版本的客户端打进自己的安装程序?
- SQL查询问题刚才写的不详细现在重写
- PL/SQL连接不上本地ORACLE
- oracle 怎么取当前时间加几个小时的时间呀
select A ,B, (select D from table where number= A*100) as C from F
你要的大概是这个意思??
复杂的判断,可以使用case函数SQL> select * from tt;
VAL
----------
1
2
3
100
SQL>
SQL> SELECT decode(tt.val, 1, 'one', 2, 'two', 3, 'three', 'other') FROM tt;
DECODE(TT.VAL,1,'ONE',2,'TWO',
------------------------------
one
two
three
other
SQL> SELECT CASE
2 WHEN tt.val = 1 THEN
3 'one'
4 WHEN tt.val = 2 THEN
5 'two'
6 WHEN tt.val = 3 THEN
7 'three'
8 ELSE
9 'other'
10 END
11 FROM tt;
CASEWHENTT.VAL=1THEN'ONE'WHENT
------------------------------
one
two
three
other
SQL>
例如如果是1就执行这个sql AND LOCAL_CODE = L05.LOCAL_CODE
AND SHOP_CODE = L05.SHOP_CODE
。。如果是2
也可以像你那样用吗
select A,B,
(select D fron table where (t.A='1' and number=100) or (t.A='2' and number=200))
from table_name t
;
或
select f.A,f.B,decode(f.C,1,'number=100',2,'number=200*') from F f;