甲骨文中的一些函数

  

一,比较大小函数符号

  

<强>函数语法:
标志(n)

  

<强>函数说明:
取数字n的符号,大于0返回1;小于0返回1;等于0返回0

  

<强>示例:
, <代码>(2)选择标志,标志(- 2),从双签(0);

  

标志(2)(2)信号标志(0)
- - - - - - - - - - - -
1 1 0

  

2, a=100=200
则标志(a - b)返回1

  

二,nvl (EXPR1 EXPR2)

  

<强>函数语法:
NVL (EXPR1 EXPR2)

  

<强>函数说明:
从两个表达式返回一个非零值。如果EXPR1的计算结果为零值,则NVL()返回EXPR2。如果EXPR1的计算结果不是null值,则返回EXPR1.EXPR1和EXPR2可以是任意一种数据类型。如果EXPR1与EXPR1的结果皆为零值,则NVL()返回.NULL . .

  

<强>返回值类型:
字符型,日期型,日期时间型,数值型,货币型,逻辑型或null值

  

<强>应用:
在不支持零值或null值无关紧要的情况下,可以使用NVL()来移去计算或操作中零值的。

  
 <代码>选择nvl (a.name,“空得”)作为名字从学生加入学校b a.ID=b.ID
  
  注意:两个参数得类型要匹配 
  

三nvl2 (exp1、exp2 exp3)

  

甲骨文在NVL()的功能上扩展,提供了NVL2函数。该函数决意exp1是空值和非空值时返回哪个表达式:

  
      <李>假设exp1为空值,则返回exp3李   <李>假设exp1为非空,则返回exp2。   
  

四、合并()函数

  

合并是一个函数,(expression_1 expression_2,…, expression_n)依次参考各参数表达式,遇到非零值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。
1,合并函数是用来获取第一个不为空的列的值
2,合并函数里面所有表达式必须为同一类型或者能转换成同一类型
3,创建或替换视图从双v c一样选择零;这样建立的视图、列c的数据类型是char。

  
 <代码>注意:
  合并(expression1…n)与此情况函数等价:
  案例表达
  当(expression1 NOT NULL)然后expression1
  …
  当(expressionN NOT NULL)然后expressionN
  其他空 
  

合并()函数可以用来完成几乎所有的空值处理,不过在很多数据库系统中都提
供了它的简化版,这些简化版中只接受两个变量,其参数格式如下:MySQL:

  
 <代码> IFNULL(表情,值)//expr1不为空返回expr1,否则返回expr2  
  Oracle:


NVL(表情,价值)
这几个函数的功能和合并(表情,价值)是等价的。比如SQL语句用于返回人
员的“意中人”,如果自己的名称不为空则将名字做为“意中人”,如果的名字为空则返回零:

  
 <代码> MySQL:选择名字,时装,isnull从表(姓名、时装)爱
  Oracle:选择名称、时装、NVL从表(姓名、时装)爱 
  

五,是空的,不是零和“& lt;在“!=

  

首先对甲骨文中零做的一些简单的说明:
1,甲骨文中零与0,空字符串,空格,包括零与零也是不等的。
2,甲骨文中对零做算术运算结果仍然为null。
3处理方法有nvl函数,比较方法是为空或者并不是零。
4,空不能被索引,比如select count (null)双重的查询结果是0。
5,零排序比其他所有类型的大,一个可以为空的字段倒排序,前面的都是空数据。

  

“& lt;在“只能判断空字符串,为空是对空字符的判断,两种完全不同的数据。一个是空字符,是个字符串,只不过是没有值,另一个是空值(空).null在数据库中是特有的一类数据其中子句中的是零和not Null将不会使用索引而是进行全表搜索。因此优化效率需要通过改变查询方式,分情况讨论等方法,去掉在子句中的零和not Null。
<强>例一:

  
 <代码>选择一个。字段n tab_a那里。字段2不是零;//a。字段2增加了索引的,但是查询速度非常慢, 
  

做了如下优化:

  
 <代码>选择一个。字段n从tab_a nvl(。字段2,' 0 ')!=' 0 '; 
  

速度提升很明显。
原因是什么呢?其实很简单,因为零和不为空使字段的索引失效了。
<>强例二:

  
 <代码>从表,字段选择*=零;
  select *从表中字段为空;
  如果字段是空的话第一种条件查不出结果,第二种条件查的出结果。 
  

原因是在oracle中,判断一个字段或者一个变量是否为零语法是“null"。返回的结果是布尔型。如果使用“=null",会返回零。如果在代码或语句中使用,可能会获取不到结果或者报错。另外,零并不表示不存在,而是未知,我们通常成为“未知”。

甲骨文中的一些函数