永发信息网

Oracle 数据库中 ,我有这样一个需求! Select 字段 from 表名 where 条件 上查询的字段,是由下面条件得

答案:4  悬赏:30  手机版
解决时间 2021-02-18 14:39
  • 提问者网友:精神病院里
  • 2021-02-17 23:54
如果 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 (你的代码)
最佳答案
  • 五星知识达人网友:酒醒三更
  • 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 条件
全部回答
  • 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就能解决了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯