在我看来,oracle的视图就是用于将多个表的关联查询结果映射成【临时表】,视图与系统表中的数据是实时对应的。

我们可以像操作表的查询一样来操作视图查询。

视图写法:

CREATE OR REPLACE FORCE VIEW  V_TEM
(
ID,
NAME
)
AS
SELECT ID,NAME FROM TABLE

项目中的一个案例,将一个自关联的结构表(行转多列)体现组织结构:市-区县-网格-乡镇-渠道

用到的知识点:

1、SYS_CONNECT_BY_PATH(字段,间隔符)    示例:SYS_CONNECT_BY_PATH(ID, '|')

2、SUBSTR()

3、INSTR()

备注:两函数SUBSTR()INSTR()对待字符串的位置的索引是从1开始的(填写0和1都是代表从第1个位置开始)

sql代码:

DROP VIEW TLS.V_CHANNEL_PATH;

CREATE OR REPLACE FORCE VIEW TLS.V_CHANNEL_PATH
(
ID,
PARENT_ID,
NAME,
ID_LEVEL,
TYPE,
IN_USE,
STATUS_TIME,
LEVEL_ID,
BANK_NAME,
ACCOUNT_NAME,
ACCOUNT_NO,
GROUP_ID,
CLASS,
CHANNEL_TEL,
QX_CHANNEL_ID,
PQ_CHANNEL_ID,
XZ_CHANNEL_ID,
QX_CHANNEL_NAME,
PQ_CHANNEL_NAME,
XZ_CHANNEL_NAME
)
AS
SELECT ID,
a.parent_id,
NAME,
id_level,
TYPE,
in_use,
status_time,
level_id,
bank_name,
account_name,
account_no,
GROUP_ID,
CLASS,
channel_tel,
SUBSTR (a.path_id,
INSTR (path_id,
'|',
1,
1)
+ 1,
INSTR (path_id,
'|',
1,
2)
- INSTR (path_id,
'|',
1,
1)
- 1)
qx_channel_id,
SUBSTR (a.path_id,
INSTR (path_id,
'|',
1,
2)
+ 1,
INSTR (path_id,
'|',
1,
3)
- INSTR (path_id,
'|',
1,
2)
- 1)
pq_channel_id,
SUBSTR (a.path_id,
INSTR (path_id,
'|',
1,
3)
+ 1,
INSTR (path_id,
'|',
1,
4)
- INSTR (path_id,
'|',
1,
3)
- 1)
xz_channel_id,
SUBSTR (a.path_name,
INSTR (path_name,
'|',
1,
1)
+ 1,
INSTR (path_name,
'|',
1,
2)
- INSTR (path_name,
'|',
1,
1)
- 1)
qx_channel_name,
SUBSTR (a.path_name,
INSTR (path_name,
'|',
1,
2)
+ 1,
INSTR (path_name,
'|',
1,
3)
- INSTR (path_name,
'|',
1,
2)
- 1)
pq_channel_name,
SUBSTR (a.path_name,
INSTR (path_name,
'|',
1,
3)
+ 1,
INSTR (path_name,
'|',
1,
4)
- INSTR (path_name,
'|',
1,
3)
- 1)
xz_channel_name
FROM ( SELECT a.*,
SUBSTR (SYS_CONNECT_BY_PATH (ID, '|'), 2) || '|' path_id,
SUBSTR (SYS_CONNECT_BY_PATH (NAME, '|'), 2) || '|'
path_name
FROM tl_channel a
START WITH ID = 1
CONNECT BY PRIOR ID = parent_id) a;

Oracle 视图view的更多相关文章

  1. Oracle视图View

  2. Oracle 学习笔记 11 -- 视图 (VIEW)

    本次必须学习一个全新的概念-- 视图 (VIEW).在前面的笔记中曾提到过,数据对象包含:表.视图.序列.索引和同义词.前面的笔记都是对表的想剖析,那么本次笔记就对视图的世界进行深入的剖析. 视图是通 ...

  3. Oracle视图分类及各种操作讲解(超级好文)

    目录:一.视图的定义: 二.视图的作用: 三.创建视图: 1.权限 2.语法 3.1  创建简单视图   3.2  创建连接视图  3.2.1 连接视图定义  3.2.2 创建连接视图  3.2.3 ...

  4. Oracle -----视图

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  5. Oracle视图详解

    转载自:http://blog.itpub.net/29785807/viewspace-1270120/ 一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本 ...

  6. oracle视图总结

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  7. oracle视图总结(转)

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  8. ORACLE 视图的 with check option

    ORACLE 视图的 with check option 我们来看下面的例子: create or replace view testview as select empno,ename from e ...

  9. ORACLE视图添加备注

    ORACLE视图添加备注 版权声明:本文为博主原创文章,未经博主允许不得转载. create or replace view oes_material_series_ref as select t.p ...

随机推荐

  1. layui 页面加载 阴影 请求页面加载转圈页面

    var layerIndex= layer.load(1,{shade: [0.3, '#000']}); $.post('${pageContext.request.contextPath}/lea ...

  2. grafana-simple-json-datasource 用于连接各种grafana不支持的数据源

    https://grafana.com/plugins/grafana-simple-json-datasource 1.安装方法很简单,下载后解压放到plugins目录就好. 我的是解决版的graf ...

  3. js-ES6学习笔记-正则的扩展

    1.在ES5中,RegExp构造函数的参数有两种情况.第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag).第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷 ...

  4. C#反射的一些经验[转载]

    写代码的时候经常需要分析已有类型的信息例如:分析现有类型自动生成类, 或者为现有的类自动增加一些功能总结了一点点经验以ClassA  a; 为例1. 通过typeof(ClassA) 或者 a.Get ...

  5. ArcGIS三种方式打断相交线------Feature To Line工具

    有多个layer图层相交线时,选用”Feature To Line“工具,将多个图层相交线打断,然后合并成一个图层. (1)       选择工具栏”Geoprocessing“中的”ArcToolb ...

  6. 准备开发一个运行在Android上的JavaME模拟器

    在一个虚拟机A上运行另外一个虚拟机B看起来是挺不靠谱的一件事,在手机上运行某个虚拟机也不怎么靠谱.并且如果虚拟机A运行在手机上这个听起来就更不靠谱了.但是很多人就在做这样的事.比如在在手机上运行DOS ...

  7. arm64 调试环境搭建及 ROP 实战

    前言 比赛的一个 arm 64 位的 pwn 题,通过这个题实践了 arm 64 下的 rop 以及调试环境搭建的方式. 题目文件 https://gitee.com/hac425/blog_data ...

  8. 团队项目个人进展——Day07

    一.昨天工作总结 冲刺第七天,学习了微信小程序中WebSocket 连接,如果当前已存在一个 WebSocket 连接,会自动关闭该连接,并重新创建一个 WebSocket 连接. 二.遇到的问题 对 ...

  9. python2与python3的区别(持续更新)

    1,print(打印),python2不换行可以使用逗号,python3不换行使用end='' python2版本: print 'a' 输出一个字符串 print a 输出一个变量 print 'a ...

  10. Azure Resource Manager 概述

    应用程序的基础结构通常由许多组件构成:可能有虚拟机.存储帐户和虚拟网络,或 Web 应用.数据库.数据库服务器和第三方服务. 这些组件不会以独立的实体出现,而是以单个实体的相关部件和依赖部件出现. 如 ...