Oracle数据库DECODE函数的使用.】的更多相关文章

decode函数是Oracle数据库独有的. 语法为: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 例子:select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; -->取出两个变量中较小的值. sign()函数根据某个值是0.正数还是负数,分别返回0.1.-1  例如: 变量1=10,变量2=20 则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的.…
Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IFdecode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值…
SQL语句的DECODE()和NVL()函数用法 SELECT DECODE(choose_tool,0,'宝马',1,'电动车',2,'自行车','步行')  AS my_tool FROM data_tool_t //分析:当choose_tool为0时候,my_tool=‘宝马’ 当choose_tool为1时候,my_tool=‘电动车’ 当choose_tool为2时候,my_tool=‘自行车’ 当choose_tool都不是上面数字时候,my_tool=‘步行’ NVL()函数:…
以下转自百度, 类似于case... when... then...else...end... DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能.DECODE有什么用途 呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的将加20%:工资在8000元以上的加15%,通常的做法是,先选出记录 中的工资字段值? select salary into var-salar…
oracle中的decode函数很好用,换成mysql中可以用类似下面的方法实现: SELECT IF(TRUE, '真值', '假值'); 如果想再弄复杂点,可以多个IF嵌套,不过嵌套的层次多了,代码可读性就比较差了    …
有用函数 DECODE 语法例如以下: DECODE(value, if1, then1, if2,then2,if3,then3, . . . else )  Value 代表某个表的不论什么类型的随意列或一个通过计算所得的不论什么结果.当每一个value值被測试,假设value的值为if1.Decode 函数的结果是then1:假设value等于if2,Decode函数结果是then2:等等.其实,能够给出多个if/then 配对. 假设value结果不等于给出的不论什么配对时.Decode…
使用PL/SQL连接到Oracle数据库服务器,执行一条update语句: update pjnl set transtime = to_date('2015-05-14 12:13:20','yyyy-MM-dd HH:mm:ss'); 报ORA-01810: format code appears twice错误,PL/SQL自动把错误定位到to_date函数的第二个参数.该函数用于把字符串转换为Oracle日期,第一个参数为日期字符串,第二个参数指定日期字符串的格式. yyyy-MM-dd…
一.字符函数upper和lower (1).upper和lower upper把小写的字符转换成大小的字符 ,lower把大写字符变成小写字符 . select upper('yes') from dual;--YES select lower('YES') from dual;--yes 项目中使用: <if test="null!=batch and batch !=''"> and upper(t2.batch) LIKE '%' || upper(#{batch})…
含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF decode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3 当然值1,…
create table t_class(c_Id  number(10) primary key ,stuName varchar2(50),  --人名c_Name varchar2(50),   --课程名c_Score number(10)     --得分)…
1.DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else).表示假设value 等于if1时,DECODE函数的结果返回then1,...,假设不等于不论什么一个if值.则返回else 2.该函数的含义例如以下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省…
使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表. 例如: SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’; SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0030 AND ENAME LIKE ‘SMITH%’; 你可以用DECODE函数高效地得到相同结果 SELECT COUNT(DECODE(DEPT_NO,002…
1 问题 对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序.但排序规则是默认的,数字.时间.字符串等都有自己默认的排序规则.有时候需要按自己的想法来排序,而不是按字段默认排序规则. 比如字段值为英文字段:Monday.Tuesday.Wednesday等,如果按字段默认排序规则就为: Friday Monday Saturday Sunday Thursday Tuesday Wednesday 实际我需要的是: Monday Tuesday W…
Oracle SQL函数  1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;        A         A      ZERO     SPACE--------- --------- --------- ---------       65        97        48        322.CHR给出整数,返回对应的…
一.函数的使用参数不同 Mysql支持多个字符串拼接: CONCAT(str1,str2,-) Oralce只支持两个字符串的拼接,若想拼接多个字符串可以嵌套使用concat CONCAT(str1,str2) 二.参数中有Null的处理方式不同 Mysql:返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. Oralce:如有任何一个参数为NULL ,则返回值拼接后的字符串. 三.其它方面 Mysql:如果所有参数均为非二进制字符串,则结果为非二进制字符串. …
Oracle常用函数: 20.COS返回一个给定数字的余弦SQL> select cos(-3.1415927) from dual;COS(-3.1415927)----------------1 更多的资料,请点击下载,Free Sql Server常用函数 实例和应用 更多的参考,请点击下载,Free…
这几天写一个报表的页面,从很恶心的数据结构中做一个聚合函数的查询,结构大概是这个样子的: 所以有:对数据group by t.id,t.name.t.course 这样三层排序,然后用函数去取值. decode(feildname,'Match_value','value1','value2')   -- 用字段名称去跟Match_value做对比,对比成功,返回value1  否则返回 value1  这里把decode()放在group by 的select内部,同聚合函数一起使用,计算对应…
转自:  https://blog.csdn.net/a1065423444/article/details/75635611 over()函数写法over(partition by expr2 order by expr3),根据expr2对结果进行分区,在各分区内按照expr3进行排序: over函数不能单独使用,需要与row_number(),rank()和dense_rank,lag()和lead(),sum()等配合使用. 分区partiton by 与 group by的区别 gro…
学习记录: 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IF decode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3 当然值1…
–decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) SELECT DECODE(TEMP.SCORE, ‘A’, ‘90-100’, ‘B’, ‘80-89’, ‘C’, ‘70-79’, ‘D’, ‘60-69’, ‘E’, ‘0-59’, ‘其他’) AS XXX FROM (SELECT ‘A’ SCORE FROM DUAL) TEMP –结果:’90-100’ –decode(条件,比较值,值1,值2) –当条件的值等于比较值时,该函数返回值1,否则返回值…
1.求2和1的余数. Select mod(2,1) from dual: 2能被1整除所以余数为0. 2.MOD(x,y)返回X除以Y的余数.如果Y是0,则返回X的值. Select mod(2,0) from dual: 返回的结果与描述的一致. 3.以EMP表为例,查询EMP表中奇数行的数据. 由于EMP表没有员工序号,先用"row number() over"窗口函数给EMP表每一行分配序号,然后用mod函数取余,奇数不能被2整除余1,故查询结果均显示奇数序号的数据. 附:&q…
----创建测试表 create table student_score( name varchar2(20), subject varchar2(20), score number(4,1) ); -----插入测试数据 insert into student_score (name,subject,score)values('张三','语文',78); insert into student_score (name,subject,score)values('张三','数学',88); in…
NVL函数.NVL( string1, replace_with).如果string1为NULL,则NVL函数返回replace_with的值,否则返回原来的值. INSTR函数.用于查找指定字符串是否存在.instr('CYZ0IU', 'Z0').返回条件索引,大于0表示存在,否则不存在.…
一.函数必须有返回值,过程没有返回值: 二.函数可以单独执行,过程必须通过execute执行: 三.函数可以嵌入SQL中执行,过程不能. 可以将比较复杂的查询写成函数,然后在过程中调用.…
用法 1.decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 相当于if else 那种方式. 2.decode(字段或字段的运算,值1,值2,值3) 当字段或字段的运算得到的值,等于值1的时候,返回值2,否则返回值3. 实例 1.select deptid,decode(type, 'CJ ', count, '0') as CJ from a. 2.select * from dept order by decode(depttype 'a', 1, 'b',…
DECODE(参数,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 值1:当参数=值1    翻译值1:想要得到的值 值2:当参数=值2 翻译值2:想要得到的值…
简单写写,后续继续补充…
如有下面的表结构AAAA,用一个字段prev_id表示记录的先后顺序,要对其排序,需要用的递归函数 ID PREV_ID CONT 99   a 23 54 d 21 23 e 54 33 c 33 99 b 32 45 g 45 21 f 如: create or replace function sequen(cid number) return number is pid number(2); begin select prev_id into pid from aaaa where id…
--测试函数3 CREATE OR REPLACE FUNCTION FN_TEST3 (NUM IN VARCHAR2) RETURN VARCHAR2 IS TYPE VARCHAR2_ARR ); NUMARR VARCHAR2_ARR; TEMPNUM ) := ''; TEMPCOUNT ; BEGIN ,LEVEL)) BULK COLLECT INTO NUMARR FROM DUAL CONNECT BY LEVEL <= REGEXP_COUNT(NUM,'(\w|[-])+'…
oracle的decode函数使用:http://www.cnblogs.com/hwaggLee/p/5335967.html case ..when 函数使用:http://www.cnblogs.com/hwaggLee/p/5336097.html mysql解决方案 select CASE WHEN 字段名称 IS NULL THEN '未知' WHEN 字段名称 = '004-001' THEN '前端' ELSE '后端' END AS '字段显示名称'from fb_log l…