赞
踩
Oracle的NVL()函数和MySQL中的IfNull()函数
MS SQL 中的IsNull()函数:
IsNull ( check_expression , replacement_expression )
check_expression: 可以是任何类型,将要检查的表达式 不为空,返回它
replacement_expression: 类型必须和check_expression相同,check_expression为null,返回它
这个函数的作用就是:判断check_expression是否为空,为空就返回replacement_expression,不为空则返回check_expression
eg:
SELECT IsNull(null,1) 返回1
SELECT IsNull(null,’男') 返回男
SELECT IsNull(‘’,'男') 注意返回的不是男哦
MS Sql中的 IsNull( )函数相当于Oracle中的 NVL( )函数:
NVL(EXP1,EXP2),函数返回exp1和exp2 中第一个不为null的值。
如果exp1为空就返回exp2,否则返回exp1。
相当于Mysql中的IfNull()函数:
应用场景:比如一张表:Products ,该表取自 http://www.w3schools.com/SQL/sql_isnull.asp
P_Id
ProductName
UnitPrice
UnitsInStock
UnitsOnOrder
1
Jarlsberg
10.45
16
15
2
Mascarpone
32.56
23
3
Gorgonzola
15.67
9
20
假设UnitsOnOrder这一列是可以为空的,可能含有空值,那么执行
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder) from Products 有可能会出错
因为UnitsOnOrder这一列为空的时候,运算的结果就是空
mssql的isnull()函数可以指定处理空值的方式:
改为下面得就可以了SELECT ProductName,UnitPrice*(UnitsInStock+isnull(UnitsOnOrder,0)) from Products
isnull(unitsOnOrder,0) unitsOnOrder为空的时候返回0
COALESCE() function
COALESCE ( expression [ ,...n ] )
相当于:
COALESCE(expression1,...n) 的功能与以下 CASE 表达式相同:
CASE
WHEN (expression1 IS NOT NULL) THEN expression1
WHEN (expression2 IS NOT NULL) THEN expression2
...
ELSE expressionN
END
相关文档:
什么是合并多行字符串(连接字符串)呢,例如:
SQL> desc test;
Name Type Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y &nb ......
安装…………
引用的http://mamaoyuan625.javaeye.com/blog/617502
安装oracle 10g后,登录 出现
the account is locked
这个错误几乎所有的初学者都会遇到.
其实解决办法非常简单.
请输入用户名: SYSTEM
输入口令:admin(注意,这个密码是你在安装oracle时第一步设置的)
然后系统会显 ......
今天写有关Oracle中函数与触发器的内容,在数据库中定义并使用存储过程、函数、触发器,可以提高用户访问数据库的效率。
数据库中函数包含四个部分:声明、返回值、函数体和异常处理。
1 create or replace function getname(sno varchar2 )
2 &nbs ......
1.查找当
mysql> show binary logs;
+—————-+———–+
| Log_name | File_size |
+—————-+———–+
| mysql-bin.000001 | 150462942 |
| mysql-bin.000002 | 125 |
| mysql-bin.000003 | 106 |
+&mdash ......
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!
[root@localhost]# mysql -u root -p
Enter password:
ERROR 2002 (H ......
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。