当执行SQL(ORACLE)时判段另一个字段的值去执行不同SQL,及 CASE WHEN 语句的使用
2013-10-21 18:02
761 查看
需求:
在执行一个SQL时需要判断其他字段的值去执行不同的sql语句:
SQL:
UPDATE table SET clearing=1, clear_count=CASE WHEN UNLIMITED_TIMES = 1 THEN nvl(clear_count, 0)+1 else 0 END WHERE id=21
的意思是当 table中 UNLIMITED_TIMES = 1时则执行nvl(clear_count, 0)+1 否则 为null
nvl(clear_count, 0)+1 的函数意思为:clear_count为null时候则将其设为0,nvl(clear_count, 0)+1意思是如果clear_count为null则结果为0+1=1;
如果不为null则结果为clear_count的值+1的总和。
在执行一个SQL时需要判断其他字段的值去执行不同的sql语句:
SQL:
UPDATE table SET clearing=1, clear_count=CASE WHEN UNLIMITED_TIMES = 1 THEN nvl(clear_count, 0)+1 else 0 END WHERE id=21
的意思是当 table中 UNLIMITED_TIMES = 1时则执行nvl(clear_count, 0)+1 否则 为null
nvl(clear_count, 0)+1 的函数意思为:clear_count为null时候则将其设为0,nvl(clear_count, 0)+1意思是如果clear_count为null则结果为0+1=1;
如果不为null则结果为clear_count的值+1的总和。
相关文章推荐
- sql语句case when使用和date_formate()的使用,DATEDIFF(字段1,字段2)获取天数,常用的MYSQL的函数
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- SQL语句中的case when语法以及Oracle中的类似方法
- SQL的 case when语句嵌套使用
- SQL语句中的case when语法以及Oracle中的类似方法
- SQL数据库查询实现行转列与列转行结果SQL语句(适用于SqlServer数据库,oracle需要修改case when语句)
- sql中case when语句的使用-来自网摘文章
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
- Sql语句中使用Case When Then判断
- SQL语句中的case when语法以及Oracle中的类似方法
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- 在sql语句中使用case..when
- 使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名
- oracle如何根据一个字段的结果判断另外一个字段?(CASE WHEN THEN ELSE END语句)
- 使用Oracle的DBMS_SQL包执行动态SQL语句
- oracle sql case语句简单使用
- 在Sql的where中使用case进行不同字段筛选|Case的2种使用方法和一种少为人知的用途