nvl

查表空间使用率使用脚本

邮差的信 提交于 2019-12-05 06:25:46
查表空间使用率使用脚本: 这里主要修改的是,如果数据文件是自动扩展的,按照自动扩展的最大值计算使用率。 SELECT d.tablespace_name "Name", d.status "Status", d.contents "Type", TO_CHAR(NVL(a.bytes / 1024 / 1024, 0),'99G999G990D900') "Size_MB", TO_CHAR(NVL(a.max_bytes / 1024 / 1024, 0),'99G999G990D900') "MAX_Size_MB", TO_CHAR(NVL(a.bytes - NVL(f.bytes, 0),0)/1024/1024, '99G999G990D900') "Used_MB", TO_CHAR(NVL((a.bytes - NVL(f.bytes, 0)) / a.max_bytes * 100, 0), '990D00') "Useds%" FROM sys.dba_tablespaces d, (select tablespace_name, sum(bytes) bytes, sum(case when AUTOEXTENSIBLE = 'NO' then bytes when AUTOEXTENSIBLE = 'YES' then MAXBYTES end ) max

Orcal nvl函数

谁说我不能喝 提交于 2019-12-05 01:52:53
NVL (E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。但此函数有一定局限,所以就有了NVL2函数。 拓展:NVL2函数:Oracle/PLSQL中的一个函数,Oracle在NVL函数的功能上扩展,提供了NVL2函数。 NVL 2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。 NVL函数的功能是实现空值的转换,根据第一个表达式的值是否为空值来返回响应的列名或表达式,主要用于对数据列上的空值进行处理,语法格式如:NVL( string1, replace_with) 如果第一个参数的值为空值,则返回第二个参数的值,否则返回第一个参数的值。如果两个参数的值都为空值,则返回空值。第一个参数和第二个参数可以是任何类型的数据,但两个参数的数据类型必须相同(或能够由Oracle隐式转换为相同的类型)。 引申一下,此NVL的作用与SQLserver 中的 ISNULL( string1, replace_with) 一样。 另一个有关的有用方法 declare i integer select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1 这样就可以把获得的合计值存储到变量 i中,如果查询的值为null就把它的值设置为默认的1 oracle中:

Oracle NVL 函数 nvl nvl2

此生再无相见时 提交于 2019-12-03 11:17:09
Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数。主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以。 下面简单介绍一下几个函数的用法。 在介绍这个之前你必须明白什么是oracle中的空值null 1.NVL函数 NVL函数的格式如下:NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。 例如: SQL> select ename,NVL(comm, -1) from emp; ENAME NVL(COMM,-1) ------- ---- SMITH -1 ALLEN 300 WARD 500 JONES -1 MARTIN 1400 BLAKE -1 FORD -1 MILLER -1 其中显示-1的本来的值全部都是空值的 2 NVL2函数 NVL2函数的格式如下:NVL2(expr1,expr2, expr3) 含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。SQL> select ename,NVL2(comm,-1,1) from emp; ENAME NVL2(COMM,-1,1) ------- ----- SMITH 1

ORA-01799: a column may not be outer-joined to a subquery

匿名 (未验证) 提交于 2019-12-03 08:33:39
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Here is my query SELECT COUNT(C.SETID) FROM MYCUSTOMER C LEFT OUTER JOIN MYCUSTOPTION CO ON (C.SETID = CO.SETID AND C.CUST_ID = CO.CUST_ID AND CO.effdt = ( SELECT MAX(COI.EFFDT) FROM MYCUSTOPTION COI WHERE COI.SETID = CO.SETID AND COI.CUST_ID = CO.CUST_ID AND COI.EFFDT <=SYSDATE ) ) and here is the error message that I am getting.. What am I doing wrong??? 回答1: you can rewrite that by pushing the sub query so that its not outer joined: select Count(C.setid) from mycustomer C left outer join (select * from mycustoption co where co.effdt <=

oracle之nvl,nvl2,decode

混江龙づ霸主 提交于 2019-12-03 02:30:35
oracle sql常用查询nvl,nvl2,decode区别及使用方法 1,NVL( E1, E2) 如果E1为NULL,则NVL函数返回E2的值,否则返回E1的值,如果两个参数都为NULL ,则返回NULL。 select nvl(null, 1) from dual; --1 select nvl(2, 1) from dual; --2 select nvl(null, null) from dual; --null 2,nvl2 (E1, E2, E3) 的功能为:如果E1为NULL,则函数返回E3,否则返回E2 select nvl2(null, 1, 3) from dual; --3 ,3,decode(E1, E2, E3, E4, E5, E6 ) 如果E1==E2,则值E3,如果E1==E4,则值E5;否则E5 select decode(1, 1, 2, 3, 4, 5) from dual; --2 select decode(3, 1, 2, 3, 4, 5) from dual; --4 select decode(2, 1, 2, 3, 4, 5) from dual; --5 来源: https://www.cnblogs.com/lidelin/p/11771861.html

Concat GROUP BY in Vertica SQL

匿名 (未验证) 提交于 2019-12-03 01:12:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I need to get a comma separated list of ids as a field for a messy third party api :s This is a simplified version of what I am trying to achieve. | id | name | |====|======| | 01 | greg | | 02 | paul | | 03 | greg | | 04 | greg | | 05 | paul | SELECT name, {some concentration function} AS ids FROM table GROUP BY name Returning | name | ids | |======|============| | greg | 01, 03, 04 | | paul | 02, 05 | I know MySQL has the CONCAT_GROUP function and I was hoping to solve this problem without installing more functions because of the

浅析ORACLE中NVL/NVL2/DECODE/CASE WHEN的用法

匿名 (未验证) 提交于 2019-12-03 00:22:01
NVL( ֵ1, ,结果 2)。它的功能是如果值1为空,则此函数返回 结果 2,不为空的话直接输出值1(如果两个参数都为空,那么还是返回空); 结果 3, 结果 2),多了一个 结果 3在中间, 功能 是当值1不为空的时候,此函数返回 结果 3,如果写成NVL2(值1, 结果 1, 结果 2),那么效果就等同于NVL(值1, 结果 2)了 ; 值1,条件1,结果1,条件2,结果2,条件N,结果N.....,值X ) 。 它的功能是当值1等于条件1的时候,输出结果1,等于条件2的时候,输出结果2,等于条件N的时候,输出结果N,所有条件值都不等的时候,输出值X。 >=,<,<=,<>,is null,is not null 等的判断 。 文章来源: 浅析ORACLE中NVL/NVL2/DECODE/CASE WHEN的用法

mysql ifnull

旧时模样 提交于 2019-12-02 12:54:26
ifnull(field,0):如果field为null,则值为0; 先看下SELECT * FROM mytest.orders; 使用ifnull() select id,product,ifnull(price,0) from orders; oracle中使用 nvl() 函数达到一样的功能,mysql中没有nvl()函数。 来源: https://blog.csdn.net/xldmx/article/details/102761260

Oracle中的函数

久未见 提交于 2019-12-02 08:54:56
Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数。主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以。 下面简单介绍一下几个函数的用法。 在介绍这个之前你必须明白什么是oracle中的空值null 1.NVL函数 NVL函数的格式如下:NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。 例如: SQL> select ename,NVL(comm, -1) from emp; ENAME NVL(COMM,-1) ------- ---- SMITH -1 ALLEN 300 WARD 500 JONES -1 MARTIN 1400 BLAKE -1 FORD -1 MILLER -1 其中显示-1的本来的值全部都是空值的 2 NVL2函数 NVL2函数的格式如下:NVL2(expr1,expr2, expr3) 含义是: 如果第一个参数的值不为空, 那么显示第二个参数的值, 如果该函数的第一个参数为空 ,则显示第三个参数的值。SQL> select ename,NVL2(comm,-1,1) from emp; ENAME NVL2(COMM,-1,1) ------- ----- SMITH

oracle中的聚合函数count、max、min、sum、avg以及NVL函数的用法

断了今生、忘了曾经 提交于 2019-11-29 12:22:36
oracle中的聚合函数count、max、min、sum、avg以及NVL函数的用法 分组函数聚合函数对一组行中的某个列执行计算执行计算并返回单一的值。聚合函数忽略空值。聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用,所以有的时候也把其称之为分组函数。这类函数通常应用于报表统计中,以下展示Oracle常用的聚合函数的应用。 分组函数的介绍 作用于一组数据,并对一组数据返回一个值. 常见的分组函数有: Count 用来计算有效数据的数量 Min 返回一个数字列或计算列的最小值 select gi.ID, gi.game_instance_name, gi.draw_no, gi.draw_date, count (*) ticketNumber, --- 用来计算有效数据的数量 nvl ( min (tt.total_bets), 0 ) totalEntry, -- 用来计算给定字段的最小值,如果为 NULL 就用 0 代替 nvl ( min (tt.total_amount), 0 ) TotalTurnover ---- 用来计算给定字段的最小值,如果为 NULL 就用 0 代替 from te_bg_ticket tt, BG_GAME_INSTANCE gi, game g where tt.BG_GAME_INSTANCE_ID = gi.ID