今日份知识学习
其实最近说了好多的数据库相关的知识,但是并没有单独说一些关键字或者函数的相关使用场景,那么今天我们就来说一下Case-When关键字的一些使用场景。
下面就一起来看看吧。
具体讲解
Case-When就等同于if-else一样,都是做一些逻辑判断处理的,这个关键字还是非常容易理解的。
关于Case-When关键字,我们在开发过程中,也经常遇到必须要使用这个关键字的场景,今天就来捋一捋到底在哪些场景下用这个关键字。
结果判断
首先就是在结果判断时,我们判空时一般都是用nvl、nvl2、decode等函数,但是这些函数都比较局限,在一些结果判断上不够灵活,这个时候就需要使用Case-When了。
通过Case-When就可以进行灵活的结果判断了。
比如下面这个例子中的SQL,如下:
select case user_id when '0001' then '张三' end from user_table;
从上面的SQL中,我们就可以将user_id为0001的数据,转换成名称为张三的数据。
行转列需求时需要使用到
在大部分行转列需求中,基本都是要使用Case-When来判断对应数据的,因为基于行转列需求的灵活性要求比较高,很难使用其他函数来替代Case-When关键字;比较高的Oracle版本好像专门提供了一个函数来进行行转列的需求。
这个我就不写SQL了,可以自行去试一下,或者去我的往期文章中找一下。
总结
今天我们学习了Case-When的几个使用场景,备不住哪天面试官就能问到哈。
最近开始来学习Oracle数据库的一些知识,其中包含一些函数的使用,或者是特性的介绍讲解等,将会在系列文章内说到。
喜欢的可以关注一下专栏。