00:00
好,那接下来我们看一下这个所谓的行转列啊,以及下面这个列转行,其实在这个搜狗当中啊,我们经常提到的一个就是行转列,一个就是列表啊,嗯,你去搜一些帖子,有的人呢,正好跟我们说的是相反的,有的人跟我们是一样的,所以这块东西没有严格的一个定义,你知道一下,到时候我们再跟大家去说明一下,到底它是个什么东西,对吧?那我们来看一下,首先我们了解一下这几个函数啊,这几个函数那更重要的我们掌握这个函数就好了,他不用记它非得是列转啊,行转列,因为在面试的时候,或者说你拿到笔试题的时候,他不会告诉你说这个东西列转行怎么做,行转列怎么做,他只会告诉你,哎,我们有一个表是这个样子的,然后你通过写circle或者写ha的方式帮我们实现以下功能,结果如下,它是不是直接是这样出的题啊,它不会说行转列怎么写,列转行怎么写。
01:00
而且你去看帖子,嗯,很多帖子正好师说的是相反的啊,相反的,当然你要仔细体会一下,其实真正意义上它叫航转链接转行都不太合适啊,我就把它叫做另外一种名字,我们来看一下啊,首先第一个函数啊叫comca,它呢是用来干什么的拼接的,好,那我们来看一下啊,就刚才我们是不是有这个show functions,然后这个慷。风神丝是吧。他说这玩意儿已经。过时了啊,受functions过时了,让我们用那个受functions like啊,应该还有一个东西是吧,加一个赖,因为他这个。
02:04
也没意义啊,他都都没有是吧,那我们加一个那个,那那无所谓了,那我们直接看吧,这个东西应该没有,这个是方的,没有那个就也没有,那我们用那个DC看一下。啊对,这个是不需要S的这块有啊,那类似于种点点点是什么意思呢?可变音参对吧?啊指的是可变参啊,那也就是说它呢接收什么多个参数返回呢?哎康CAD叫连接拼接对吧,其实它就是将字符串给它看什么拼接起来了啊,你比如说来s select啊,我们用con啊括号,呃,这个地方呢,他是不可以有多个参数啊对吧,随便多少个啊然后呢,我们把A。
03:10
我拼接一个中杠对吧,我再拼接一个什么B,我再拼接一个中告,我再拼接一个C。就做这个事的。啊,做这事用的好,那其实这个地方啊,你不光可以写这个写死的字符串,还可以做什么事呢?来这一边不有三个字段吗?我们还能拼接字段啊,谁来的?假如说我们想contact括号,对吧,我想把这个d number和D给它拼接起来,中间用这个还是中杠,那我们可以怎么写啊?D number逗号,然后呢用中杠对吧,如果你不用中杠的话,两个是不是挨在一起了呀,对吧,主要是这个我们做中杠,这个ID name给它放一起,From这个什么第PD这张表拼起来了,也可以拼词段,不一定非得说把这个词写死,当然还可以这样玩啊,就说其实我们都看到了,它这里边呢,你可以写词段,也可以写词的是吧。
04:18
子符串对吧?哎,它能把这两个都拼接起来,所以我们来看啊,这块呢,整体把它叫做什么呀,行转列,实际上这个东西我们不如倒不如称为叫行转行,他就是把多多这个这个行的数据给他拼到一起了,对吧?啊拼接到一起的是这样的一个东西啊好,那接下来第二个啊,第二个慷慨的位置。看看的杯子这个是干什么用的呢?是这样的啊,那我们看刚才我们拼这个ABC的时候,是不是中间分割符是一样的呀,那我们看到一样的就容易想着偷懒,我们就想着既然你分隔符是一样的,我们能不能说。
05:04
把干什么提提出来对吧?啊,大家既然用的是一样的,那我就偷个懒,我就不写那么多,哎,它有这种功能用什么呢?用这个叫慷。他呢,就是第一个。是一个分隔符,后面的字符串啊,中间呢,都用同样的分隔符,也就是说刚才这个东西啊,来,我把这个函拿过来来运行,我们可以改一种写法,用慷慨的位对吧,然后我第一位写一个中杠,第二位直接写A,第三位直接写什么B,第四位直接写。所以刚才是不是五个参数现在变成什么了,四个参数了,是不是结果是一样的对吧?也就是说分割符呢,给你提到最前面了,后面呢,按照这个分割符去啊看盖呢,就是从前往后干什么拼音就好了啊,一个一个用一个一个拼,对吧,而它呢,是第一个位置作为分割符,后面所有的字符串都用前面的拼接,除了这个contact with之外啊,那我们看一下DC方式。
06:13
这个所谓的他除了放字符传,还可以放什么?放字符站的数组啊,放字符串的数组,好,那还有一个,这其实一个正则表达式啊,加号表示多个任一个。啊,就是说这一套东西呢,可以扔一个好,那我们有书组吗?之前。有吧,哪张表是不是大家忘了?这张表我不知道你们记不得你们的,反正我记得我的这张表,还记得吗?这个friends子我们用的是不是数组啊,对吧?数组结构这个是map,这个是structure,还记得吧,对吧?啊,是这张表啊,但我们刚才看到了所谓的contact with呢,它除了可以放这个嗯,磁符串之外,是不是还可以放数组啊,那我们这个东西不就是一个数组吗?对吧?From from这个它的三来看一下啊,哎,它是不是用中杠P接了。
07:26
对吧,也就是说它描述信息当中就说了,既可以放磁符串,又可以放字符串类型的数组,然后数组里面不是有多个元素吗?对吧,它把多个元素呢,就用前面的分割符给你干什么,连起来啊,就给你连起来是这样的意思,好这两个呢,其实都是我们将多个列的数据呢,放把它并到一个列对吧,拼接拼接作战当中的啊,然后接下来还有个这个东西啊,而且这个这个注意啊,就是说它只能放他俩,因为这个我们通过DC是不是看到了。
08:01
它的参数里面是不是three中杠a string啊,也就是说它参数只有这两个类型,你不要看其他的啊好,那接下来还有一个connect。这个东西啊,呃,它呢是一个聚合函数。聚合函数就是类似于sum count,它可以将传一个列,把这个列干什么呢?放在一个数组里边。这是不是聚合函数啊,我传一个列一个列,是不是有多行的数据啊,我把它放在一个数组里边,是不是变成了一行多行到一行多进一出,是不是AF函数聚合函数吧,对吧?好,那我们来开开用一下啊呃,随便吧,这个时候呢,我们就随便挑一个量心from这个student,我们看一下有没有数据啊a student没有一呢啊一有好,那这个时候呢,我们想做把它变成一个数组,可以怎么做啊,Select我就不查新了,而是去查一个叫connect。
09:03
Set啊,Connect set,而且这个地方是set啊,还有个list,它们俩什么区别?其实你们都看出来对吧,我们先用赛,或者说我们先尝试一下用力看看啊啊这个地方呢,我们把ID扔进去。其实你能猜得出来跟赛啥区别是不是?它都是会放到一个数组里边,List不做去虫,Set集合做去重,对吧?啊,Java当中list跟set不是这个区别吗。对吧,现在的结构是不是会自动去重啊,它不允许放重复数据吗?
10:01
你看这是所谓的例子,是不是最后返回这是一个数组啊,对吧?啊,然后呢,把我们所有数据放在一起了,那如果说我给它现在换成什么在呢?我们看一下那理论说按照我们刚才所分析的,应该只有231套,对吧,这里刚才是不是有三套啊,对吧,因为我们之前放了三次数据啊。这个就看你公司当中需求的到底想怎么用了,对吧,要不要驱虫啊。反正它是一个聚合函数,我们传入了多行数据对吧?给我们出来只有一行对吧?给我们出来只有一行啊,所以它其实是一个聚合函数啊,前面两个呢,是用来拼接列的,是不是只有123没有重复的吧,因为它天然的会给我们做去重啊,因为这就是list跟set的一个区别啊,其实有的东西很多都是类似的,对吧?啊,编码方式你看Java学通了,你Java学好了,你学其他的语言都会比较轻松啊,都比较轻松行,这是我们关于这几个函数的一个说明,然后接下来我们看需求。
我来说两句