今天兄弟们的帮助,数据库,具有数据如下面的表:

no  name

1    a

2    b

3    c

4    d

怎样用一个sql显演示样例如以下结果:

ab

ac

ad

bc

bd

cd

对于这样的构造数据,是分析函数的强项。以下来做个试验:

create table t (no number,name varchar(2));

insert into t values(1,'a');

insert into t values(2,'b');

insert into t values(3,'c');

insert into t values(4,'d');

commit;



实现1:

select decode(h2, '', '', h1 || h2) b,

       decode(h3, '', '', h1 || h3) c,

       decode(h4, '', '', h1 || h4) d

  from (select name h1,

               lead(name, 1) over(order by name) h2,

               lead(name, 2) over(order by name) h3,

               lead(name, 3) over(order by name) h4

          from t) ;

B    C    D

---- ---- ----

ab   ac   ad

bc   bd

cd



实现2:相对实现1对于行进行了转换

with tt as(

select name h1,

               lead(name, 1) over(order by name) h2,

               lead(name, 2) over(order by name) h3,

               lead(name, 3) over(order by name) h4

          from t

)

select * from (select decode(h2, '', '', h1 || h2) b from tt

union

select decode(h3, '', '', h1 || h3) c from tt

union

select decode(h4, '', '', h1 || h4) d from tt)

where b is not null;

B

----

ab

ac

ad

bc

bd

cd

实现3:也能够不用分析函数

select a.name || b.name from t a, t b where a.no < b.no;

附录,一句SQL实现9*9乘法口诀:

select r1 || '*' || r1 || '=' || r1 * r1 A,

decode(r2, '', '', r2 || '*' || r1 || '=' || r2 * r1) b,

decode(r3, '', '', r3 || '*' || r1 || '=' || r3 * r1) C,

decode(r4, '', '', r4 || '*' || r1 || '=' || r4 * r1) D,

decode(r5, '', '', r5 || '*' || r1 || '=' || r5 * r1) E,

decode(r6, '', '', r6 || '*' || r1 || '=' || r6 * r1) F,

decode(r7, '', '', r7 || '*' || r1 || '=' || r7 * r1) G,

decode(r8, '', '', r8 || '*' || r1 || '=' || r8 * r1) H,

decode(r9, '', '', r9 || '*' || r1 || '=' || r9 * r1) I

from (select level r1,

lag(level, 1) over(order by level) r2,

lag(level, 2) over(order by level) r3,

lag(level, 3) over(order by level) r4,

lag(level, 4) over(order by level) r5,

lag(level, 5) over(order by level) r6,

lag(level, 6) over(order by level) r7,

lag(level, 7) over(order by level) r8,

lag(level, 8) over(order by level) r9

from dual

connect by level < 10);

使用lead分析功能相似的结构9*9乘法口诀功能的更多相关文章

  1. 【知识强化】第五章 中央处理器 5.1 CPU的功能和基本结构

    那么在前四章我们已经把数据的表示和运算,存储系统和指令系统都已经给大家讲完了.那么从这一章开始,我们将要讲解中央处理器的内容.那么这一部分内容我们就进入到我们计算机组成原理的一个深水区,它是我们计算机 ...

  2. [阿里DIN] 深度兴趣网络源码分析 之 整体代码结构

    [阿里DIN] 深度兴趣网络源码分析 之 整体代码结构 目录 [阿里DIN] 深度兴趣网络源码分析 之 整体代码结构 0x00 摘要 0x01 文件简介 0x02 总体架构 0x03 总体代码 0x0 ...

  3. Week2 Teamework from Z.XML 软件分析与用户需求调查(二)应用助手功能评测

    评测人:薛亚杰 周敏轩. 说明:言辞激烈,请勿介意. 软件使用概述 我们团队这次评测的必应助手是必应缤纷桌面的一个小功能,根据评测人员试用几天后发现,它的作用大概就是能够用一种看上去比较生动的形式来给 ...

  4. 2019微软Power BI 每月功能更新系列——2月Power BI 新功能学习

    哈喽,小伙伴们,我是小悦悦,好久不见~ 春节假期结束,新一轮的工作开始,祝大家猪年如意,开工大吉! 今天小悦悦带你走入猪年学习的正确打开方式——Power BI新一年的持续更新学习!   Power ...

  5. 微软Power BI 每月功能更新系列——4月Power BI 新功能学习

    本月Power BI Desktop的更新,除了常规的视觉和数据连接器改进之外,还有两个非常大的功能改进,交互式的报表.问答,用户直接在Desktop可以询问有关的数据问题,面对层出不穷的用户需求,这 ...

  6. 微软Power BI 每月功能更新系列——9月Power BI 新功能学习

    Power BI Desktop 9月新功能摘要 Power BI 9月更新如期而至,这一次Power BI 又推出了新功能——聚合预览,它可在内存中无缝地存储汇总值,大大提高报告的性能.另外本月还包 ...

  7. 个性化推荐产品功能的设计和B端产品的功能策划方式

    宜信科技中心财富管理产品部负责人Bob,与大家一起聊聊个性化推荐产品功能的设计和B端产品的功能策划方式. 拓展阅读:回归架构本质,重新理解微服务|专访宜信开发平台(SIA)负责人梁鑫 智慧金融时代,大 ...

  8. 功能更新 | medini analyze — 符合ISO 26262的功能安全平台工具

            汽车电子电气系统的功能安全随着智能驾驶.新能源等新兴技术的发展而愈发受到重视.在国际功能安全标准ISO 26262的落地过程中遇到了很多的棘手问题:如何正确而有效地实施HARA以得到合 ...

  9. .net Mvc文件下载的功能,大文件下载完成之后修改数据库功能

    原文:.net Mvc文件下载的功能,大文件下载完成之后修改数据库功能 我服务器上文件只能下载一次,下载了之后就不能下载了,大文件或网速不好时,可能服务端文件流发送完了,客户端还没下载完,导致下载失败 ...

随机推荐

  1. hosts 持续更新 - laod

    https://laod.cn/hosts/2017-google-hosts.html 2017 Google hosts 持续更新[更新于:2017-08-22] 4,347 2,367,079 ...

  2. arcengine 开发经典帖 【强烈推荐仔细研读】

    转自原文 arcengine 开发经典帖 使用ArcGIS Engine 开发自定义GIS应用: 第一部分:使用ArcGIS Engine 发布自定义GIS应用软件-全面了解ArcGIS Engine ...

  3. Flink执行时之流处理程序生成流图

    流处理程序生成流图 DataStream API所编写的流处理应用程序在生成作业图(JobGraph)并提交给JobManager之前,会预先生成流图(StreamGraph). 什么是流图 流图(S ...

  4. mysqlbinlog命令使用

    常用参数:--start-datetime=datetime 从二进制日志中第1个日期时间等于或晚于datetime参量的事件开始读取.datetime值相对于运行mysqlbinlog的机器上的本地 ...

  5. java三大框架实现任务调度——IRemindService

    java实现任务调度,主要分为几个步骤: 1.创建一个服务             2.创建一个任务类,将服务作为一个任务去完成(实现job接口)             3.创建一个任务类实体    ...

  6. Expression Blend 的点滴(3)--Templating的妙用,制作自己的ScrollBar控件

    原文:Expression Blend 的点滴(3)--Templating的妙用,制作自己的ScrollBar控件 在Blend中,有一个功能,Make into control---通过它可以方便 ...

  7. 【t061】游览路线

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 话说LCINF信息组来到烟台参加夏令营.一天,大家提议出去游玩,来到了烟台最繁华的地方.由于他们对烟台 ...

  8. hbase 2.0.2 put和delete的一些坑

    测试的inbox表为多版本表,封装的scanTable已设置查询全部版本,以下的测试基于hbase2.0.2 一.put(针对相同的rowkey) 测试1.使用方法链的形式对同一个put添加数据到不同 ...

  9. MKNetWorkKit的使用(1)

    在整个程序中只有一个全局队列 MKNetWorkKit中主要有两个类,MKNetworkEngine和 MKNetworkOperation,MKNetworkOperation就是一个操作,是NSO ...

  10. 混合使用C++语言和Objective-C语言

    如果你的源文件扩展名是.m的,你还需要改成.mm,这样编译器才知道你将会在该文件中混合使用C++语言和Objective-C语言.