使用NVL的时候只能对值进行是否为空的判断,基本语法是NVL( 值1, ,结果2).它的功能是如果值1为空,则此函数返回结果2,不为空的话直接输出值1(如果两个参数都为空,那么还是返回空): NVL2我理解为NVL的升级版,基本语法是NVL2(值1,结果3,结果2),多了一个结果3在中间,功能是当值1不为空的时候,此函数返回结果3,如果写成NVL2(值1,结果1,结果2),那么效果就等同于NVL(值1,结果2)了: DECODE函数再次升级,基本表达式DECODE(值1,条件1,结果1,条件2,…
oracle sql常用查询nvl,nvl2,decode区别及使用方法 1,NVL( E1, E2) 如果E1为NULL,则NVL函数返回E2的值,否则返回E1的值,如果两个参数都为NULL ,则返回NULL. ) , ) select nvl(null, null) from dual; --null 2,nvl2 (E1, E2, E3) 的功能为:如果E1为NULL,则函数返回E3,否则返回E2 , ) ,3,decode(E1, E2, E3, E4, E5, E6 ) 如果E1==E…
oracle中nvl()函数  oracle的nvl函数的使用方法 通过查询获得某个字段的合计值,假设这个值位null将给出一个预设的默认值  select nvl(sum(t.dwxhl),1) from tb_jhde t where zydm=-1 这里关心的nvl的使用方法,nvl(arg,value)代表假设前面的arg的值为null那么返回的值为后面的value  如: NVL(a,b)就是推断a是否是NULL,假设不是返回a的值.假设是返回b的值 通过查询获得某个字段的合计值,假设…
[oracle中的round()方法的用法] Round( ) 函数 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果 oracle一般常用于计算表空间内存还有多少空间 语法 ROUND( number, decimal_places ) number : 需四舍五入处理的数值 decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 ) 返回值类型 数字 例子 select round(1024.1024, 0) from dual; 回传 1024 sele…
最近在修改项目中一个统计的bug,统计出的钱数不对,因为不是自己开发的模块,经过分析流程找到了统计的sql. sum(f_msmoney)+sum(f_fkmoney) as total, 上面这段是计算钱数的sql,看上去没有什么问题,但是sql查出来的total值居然是null,然后开始检查表结构和数据,发现两个字段类型为VARCHAR2且有一个有值,另一个字段为空.起初先验证是不是数据类型不是NUMBER不能进行计算,但很快我的想法被否认了,我用to_number对字段进行转换,查询结构依…
Oracle 通用函数 ① NVL 函数--------将空值转换成一个已知的值: 可以使用的数据类型有日期.字符.数字. 函数的一般形式:   NVL(commission_pct,0)            NVL(hire_date,'01-JAN-97') NVL(job_id,'No Job Yet') (注意select 原数据类型是number  对返回值要求也是number  其他同理)? 求年薪 select employee_id, nvl(commission_pct,)…
Oracle的Nvl函数 nvl( ) 函数 从两个表达式返回一个非null 值. 语法 NVL(eExpression1, eExpression2) 参数 eExpression1, eExpression2 如 果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2.如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1.eExpression1 和 eExpression2 可以是任意一种数据类型…
前几天碰到一个关于Oracle不等于的问题,最后搜索了一下,发现下面资料,拿来跟大家分享一下,需要的朋友可以参考下     关于Oracle中的不等于号: 在Oracle中, <> != ~= ^= 都是不等于号的意思.都可以使用. 但是奇怪是的, 我想拿出price不是180000的商品时:(price是Number类型的) SELECT id, name FROM product where price<> 180000; 执行这个语句时,priceis null 的记录不出来…
在oracle中用nvl和nvl2函数来解决为空的情况,例如,如果奖金为空,则为它指定一个数.也就是nvl(奖金字段,指定的奖金),但是两个的类型要一致. 1)nvl()函数 SQL> select comm,nvl(comm,111) from emp;如果comm为空,则将它设置为111: 2)nvl2()函数(类似三目运算符) SQL> select comm,nvl2(comm,666,555)from emp;如果comm不为空返回666,为空返回555,如果第二个参数和第三个参数类…
1. 什么是事务 在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么都成功执行,完成整个工作单元操作,要么一个也不执行. 如:网上转帐就是典型的要用事务来处理,用以保证数据的一致性. 2. 事务特性 SQL92标准定义了数据库事务的四个特点: 原子性(Atomicity):一个事务里面所有包含的SQL语句是一个执行整体,不可分割,要么都做,要么都不做. 一致性(Consistency):事务开始时,数据库中的数…
测试过程中,经常需要批量删除或者插入.修改一些表数据或结构,使用手工复制.粘贴其实很麻烦,所以这是我们就可以使用拼接成sql语句的方法来实现操作数据.下面先讲讲oracle中拼接符 || 的用法,如下: 语法如下: select " "||table.values||" " from tablename where ... 其中引号内的是需要拼接的字符串 示例一,清除某所有表的表数据: 1.我们知道,oracle是带有一些自带的系统表的,如dba_tables,里面…
转自:https://blog.csdn.net/qq_29274091/article/details/72627350 Oracle中start with和connect by 用法理解转自:http://www.blogjava.net/xzclog/archive/2010/03/05/314642.html,多谢博主分享 connect by 是结构化查询中用到的,其基本语法是: 1 select … from tablename 2 start with 条件1 3 connect…
NVL(EXPR1,EXPR2) NVL2(EXPR1,EXPR2,EXPR3) NULLIF(EXPR1,EXPR2) COALESCE(EXPR1,,..,EXPRn) decode --------NVL nvl(COMMISSION_PCT,0) --如果第一个参数为null,则返回第二个参数 --如果第一个参数为非null,则返回第一个参数 ---经典示例:计算年薪(工资+提成) SELECT LAST_NAME,SALARY,NVL(COMMISSION_PCT,0),       …
DECODE函数的用法:   DECODE(value,if1,then1,if2,then2,if3,then3,......,else),表示如果value的值等于if1时,DECODE函数的结果返回then1,......,如果不等于任何一个if值时,则返回else值.   NVL函数的用法:   NVL(expr1,expr2),表示如果expr1的值为NULL时,则返回expr2的值,否则返回expr1的值.   NVL2函数的用法: NVL2(expr1,expr2,expr3),检…
首先说明:NULL指的是空值,或者非法值. 1.NVL (expr1, expr2)expr1为NULL,返回expr2:不为NULL,返回expr1.注意两者的类型要一致 2.NVL2 (expr1, expr2, expr3) expr1不为NULL,返回expr2:为NULL,返回expr3.expr2和expr3类型不同的话,expr3会转换为expr2的类型 3.NULLIF (expr1, expr2) 相等返回NULL,不等返回expr1 总结一下: NVL 的目的是:如果为空,则…
1 COALESCE 語法:COALESCE(expr1, expr2, ..., exprn) n>=2 作用:COALESCE returns the first non-null expr in the expression list. You must specify at leasttwo expressions. If all occurrences of expr evaluate to null, then the function returnsnull. COALESCE用於…
nvl函数 语法: NVL(表达式1, 表达式2) select nvl(s.name, '未填写') from student s 如果表达式1的值为空, 则显示第二个值, 否则显示原来的值, nvl2函数 语法: NVL2(表达式1, 表达式2, 表达式3) select nvl(s.name, 'a', 'b') from student s 如果表达式1的值不为空, 显示表达式2, 为空的话显示表达式3 这两个函数还有一个重大的区别, NVL函数中表达式1和表达式2的值必须为同一类型,…
函数介绍 DECODE函数是ORACLE PL/SQL的功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能. DECODE有什么用途呢?先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的加20%:工资在8000元或以上的加15%. 通常的做法是,先选出记录中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else…
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()函数:…
1.返回两个字段中非空字段的值,第一个字段非空,返回第一个字段的值,第二个字段值为null,则返回第二个字段的值,如果都为null 则返回null. select nvl(a,b) from table1 where ..... 其中a,b均为table1中字段, 如果a为null,则取得b的值. 2.返回两个表达式中计算结果非空的值. select nvl( expression1 , expression2 ) from table1 where ...... 其中expression1,e…
IFNULL(expr1,expr2)  如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境.  mysql> select IFNULL(1,0);         -> 1 mysql> select IFNULL(0,10);         -> 0 mysql> select IFNULL(1/0,10);         -> 10 mysql> sele…
nvl(COMMISSION_PCT,0)如果第一个参数为null,则返回第二个参数如果第一个参数为非null,则返回第一个参数 COALESCE(EXPR1,EXPR2,EXPR3...EXPRn)从左往右数,遇到第一个非null值,则返回该非null值.多层判断 第一点区别:从上面可以知道,nvl只适合于两个参数的,COALESCE适合于多个参数. 第二点区别:COALESCE里的所有参数类型必须保持一致,nvl可以不一致.…
nvl(exp1,exp2):                           如果exp1为空,则返回exp2:否则返回exp1nvl2(exp1,exp2,exp3):                 如果exp1为空,则返回exp3:否则返回exp2nullif(exp1,exp2):                         如果exp1等于exp2,则返回空:否则返回exp1coalesce(exp1,exp2.....expn):     返回列表中第1个不为空的值,如果全…
该函数共有两种作用:第一种,即大家都比较熟悉的去除空格.例子:--TRIM去除指定字符的前后空格SQL> SELECT TRIM(' dd df ') FROM dual;TRIM('DDDF')------------dd df --LTRIM去除指定字符的前面空格SQL> SELECT LTRIM(' dd df ') FROM dual;LTRIM('DDDF')-------------dd df --RTRIM去除指定字符后面后空格 SQL> SELECT RTRIM(' dd…
 http://blog.csdn.net/woshixuye/article/details/17262307 一.Lpad函数 lpad函数将左边的字符串填充一些特定的字符其语法格式如下:lpad(string,n,[pad_string]) string字符或者参数 n字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符; pad_string可选参数,这个字符串是要粘贴到string的左边,若这个参数未写,lpad函数将会在…
/**1. 用select 创建相同表结构的表*/create table test_tbl2 as select * from test_tbl1 where 1<>1; /**  2. 用insert into .. select 插入*/insert into test_tbl2(id,name,salary) select id,name,salary from test_tbl1 where id<6;…
http://www.blogjava.net/xzclog/archive/2010/03/05/314642.html…
//INSTR('15,17,29,3,30,4',a.femployee) var instrSql = fun.funHelper.charIndex('a.femployee',"'"+V_1+"'"); LB_sqlExecute("delete from T_HR_TrainFile a where a.ftraincourse = ? and "+instrSql+" >0 ",[courseName]);…
-- not in 的替代写法select col from table1 where col not in(select col from table2); select col,table2.col temp_colfrom table1 left join table2on table1.col = table2.colwhere temp_col is null; -- in 的替代写法select col from table1 where col in(select col from…
在Oracle中nvl(字段名,value)函数用于对没有值的字段做处理在MySql中ifnull(字段名,value)是一样的功能…