如果 A 不为空 那么'S' || 'T'||
再如果 C =1 显示 'D'否则 'V'
否则 直接打印 '$:0.0'
判断我会 就是不知道这if 放在那?
select 和 where 都试过,没成功,忘高手指点,公司考我,才学了3天的oracle 忘高手结合T-SQL讲一下! 谢谢! 代码请慷慨留下,谢谢!
是 pL/sql
我知道这个if 可以搞定的
但是这得出来的 只是 一个我要查询的字段 而已
把这段代码 放什么地方呀?
select (你的代码 ) from 表
还是
select AAA from 表 where (你的代码)
Oracle 数据库中 ,我有这样一个需求! Select 字段 from 表名 where 条件 上查询的字段,是由下面条件得
答案:4 悬赏:30 手机版
解决时间 2021-02-18 14:39
- 提问者网友:精神病院里
- 2021-02-17 23:54
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-02-18 00:29
基本语法
Select CASE WHEN A IS NULL THEN 'S' || 'T'|| CASE WHEN C=1 TEHN 'D' ELSE 'V' END ELSE '$:0.0' END AS 字段
from 表名 where 条件
Select CASE WHEN A IS NULL THEN 'S' || 'T'|| CASE WHEN C=1 TEHN 'D' ELSE 'V' END ELSE '$:0.0' END AS 字段
from 表名 where 条件
全部回答
- 1楼网友:英雄的欲望
- 2021-02-18 03:15
你的描述不太清晰,整理一下你的问题:
查询表里A,C两个项目
如果A不为空 且C=1 就显示 'STD'
如果A不为空 且C≠1 就显示 'STV'
如果A为空显示 '$:0.0'
如果我理解正确,这个功能只要一个SQL就能实现
SELECt
(CASE WHEN A IS NOT NULL THEN DECODE(C,1,'STD','STV') ELSE '$:0.0' END) AS AAA
FROM 表
WHERe 条件
- 2楼网友:青灯有味
- 2021-02-18 02:53
楼主,你问的是case when的用法,不是很明白你说的问题:
如果 A 不为空 那么'S' || 'T'||
再如果 C =1 显示 'D'否则 'V'
否则 直接打印 '$:0.0'
你最终是要一个结果还是多个结果?
以下是CASE WHEN 的用法(SCOTT模式下)
用法一: SELECt ENAME, JOB, HIREDATE, deptno,sal,
2 CASE DEPTNO WHEN 10 THEN SAL * 0.8
3 WHEN 20 THEN sal*1.2
4 WHEN 30 THEN sal*1.5
5 END
6 FROM emp ;
语法二:
SQL> SELECt ENAME, JOB, HIREDATE, deptno,sal,
2 CASE WHEN DEPTNO = 10 THEN SAL * 0.8
3 WHEN deptno =20 THEN sal*1.2
4 WHEN deptno =30 THEN sal*1.5
5 END
6 FROM emp ;
另外你问的,如果用户输入a执行select a from table的问题:
SELECt DECODE('&列名','empno',empno,'sal',sal) FROM emp
如果输入empno 则执行SELECt EMPNO FROM EMP
如果输入sal 则执行SELECt SAL FROM EMP
- 3楼网友:独钓一江月
- 2021-02-18 01:32
哥哥 T-SQL是SQL SERVER2000的语言,ORACLE是叫PL/SQL
你确定是用ORACLE么?写个脚本 还是用普通的SQL实现?
你上面这个用SQL我是写不出
试下PL/SQL
if A is not null then
if C==1 then dbms_output.put_line('D');
else dbms_output.put_line('V');
dbms_output.put_line('S'||'T');
else dbms_output.put_line('$:0.0');
不晓得 是楼主这个意思不 反正最基本的IF ELSE就能解决了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯