oracle_decode、case

1、case

语法:

 case
   when 条件1 then 返回值1
   when 条件2 then 返回值2
   ...
   else 返回值N

 end;

示例:

declare
  i   integer;
  str varchar2(20);
begin
  i   := 3;
  str := case
           when i = 1 then ‘a‘
           when i = 2 then ‘b‘
           when i = 3 then ‘c‘
         end ;
  dbms_output.put_line(str);
end;

CASE的后台实现代码:

if (condition1) {
  ‘Is Positive‘;
 } else if (condition2 ) {
  ‘Is Negative‘;
 }else {
  ‘Is Zero’
}

2、Decode

语法:decode(变量或表达式,值1,返回值1,值2,返回值2,...,默认值)

示例:SELECT DECODE(SIGN(5 – 5), 1, ‘Is Positive‘, -1, ‘Is Negative‘, ‘Is Zero’) FROM DUAL
Decode的后台实现:

switch ( SIGN(5 – 5) )
  {
  case 1 : ‘Is Positive‘; break;
  case 2 : ‘Is Negative‘; break;
  default : ‘Is Zero’
  }

  

oracle_decode、case

时间: 2024-12-29 12:01:45

oracle_decode、case的相关文章

求 1+2+...+n, 要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句 (A?B:C)。

求 1+2+...+n,要求不能使用乘除法.for.while.if.else.switch.case 等关键字以及条件判断语句 (A?B:C). #include <bits/stdc++.h> using namespace std; int Sum(int n) { int Ret = 0; n == 0 || (Ret = Sum(n-1)); return n + Ret; } class A{ public: A() { sum += ++n; } static int sum;

shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select

1.expr计算整数变量值 s=`expr 2 + 3` 运算符号和参数之间要有空格分开: 2.let命令 let s=(2+3)*4 echo $s 3.for语句 for 变量 in 列表 do 命令行(通常用到循环变量) done #!/bin/bash for var in one two three four five do echo ------ echo '$var is' $var done 以命令返回值作为列表 #!/bin/bash for var in `ls` do ec

题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)

题目:求1+2+…+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字以及条件判断语句(A?B:C). 分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制.但这道题却能有效地考查发散思维能力,而发散思维能力能反映出对编程相关技术理解的深刻程度. 通常求1+2+…+n除了用公式n(n+1)/2之外,无外乎循环和递归两种思路.由于已经明确限制for和while的使用,循环已经不能再用了.同样,递归函数也需要用if语句或者条件判断语句来判断是继续

Oracle nvl、nvl2、nullif、decode、case函数详解

1.NVL函数 nvl(expr1,expr2),如果expr1为空,则返回expr2: 2.NVL2函数 nvl2(expr1,expr2,expr3),如果expr1为空,则返回expr3,否则返回expr2: 3.NULLIF函数 nullif(expr1,expr2),如果expr1=expr2,返回空,否则返回expr1,要求两个表达式数据类型一致: SQL> insert into t1 values(9); 说明1:NVL和NVL2函数在进行空值判断的时候,都会将函数内的表达式执行

[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2.函数的种类: (1)算术函数 - 数值计算 (2)字符串函数 - 字符串操作 (3)日期函数 - 日期操作 (4)转换函数 - 转换数据类型 (5)聚合函数 - 数据聚合 3.算术函数(加.减.乘.除):+.-.*./ [备注]数据类型 NUMBERIC(全体位数,小数位数)可以指定数值的大小. C

Oracle-34-if语句、case语句、loop循环、while循环、for循环

一.IF语句 在PL/SQL中,if, then, else, elsif, endif等关键字用来执行条件逻辑 语法格式: if  条件1 then       语句1 elsif  条件2 then       语句2 else       语句3 end if; 例1:练习if结构 解:注意下图中的程序: 二.case语句 语法结构: case 变量 when 值1 then 语句1; when 值2 then 语句2; when 值3 then 语句3; -- when 值n then

求1+2+3+...+n的值,要求不能使用乘除法,for、while、if、else、switch、case、等关键字及条件判断语句(JAVA)

采用递归和三目表达式注意红色字体一定不能写成n-- 1 package com.hunag; 2 3 public class Sum { 4 5 static int sum; 6 public static int isum(int n) 7 { 8 sum+=n; 9 sum=n==0?sum:isum(--n); 10 System.out.println(n); 11 return sum; 12 } 13 public static void main(String[] args)

LinuxShell 脚本for、while、case语句的应用

一.使用for循环语句 1)for 语句的结构 for变量名in取值列表 do 命令序列 done 执行流程: 首先将列表中的第1个取值赋给变量,并执行do--done循环体中的命令序列:然后将列表中的第2个取值赋给变量,并执行循环体中的命令序列--依次类推,直到列表中的所有取值都用完,最后将跳至done语句,表示结束循环. 2) for 语句应用示例 例1:根据姓名列表批量添加用户 首先创建员工列表文件users.txt [[email protected] ~]# vim /root/use

【编程题目】求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case和条件语句

看到这个问题,第一个反应是真变态啊. 然后,直觉是不能用循环就只能用递归了.可递归怎么跳出来却遇到了麻烦, 我连goto语句都考虑了也没弄好. 后来想到一个非常NC的方法:查找表. 如果n限定一个比较小的范围直接用查找表好了. 但题目的目的肯定不是这样的..... 后来,我转换了一下思路 1+2...+n = (n*n + n)>>1  只要求出n*n来就好了, 但问题是不能用乘法,于是硬件出身的我想到了二进制&,|,>>,<<都是可以用的. 思路:设n = 5