`
y806839048
  • 浏览: 1083116 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

视图的用法

阅读更多
视图的用法:
(用视图的好处,比如pagehelp分页只要括号级别超过三层,就是报解析错误,这是就要借助视图)
1:直接在sql中把视图当作结果集,临时表,直接放在sql中当作临时表:

1. 增加视图VW_TB_BAS_SPSX
公式为:
SELECT TB1.SPSX_KEY, TB1.CODING, TB1.RECKON_CODING,
TB1.SPSX_NAME,
(SELECT TB5.LOOKUP_NAME FROM TB_BAS_LKP TB5 WHERE
TB5.BUSINESS_TYPE='TB_BAS_SPSX.DATA_TYPE' AND TB5.LOOKUP_TYPE =
TB1.DATA_TYPE) AS DATA_TYPE,
(SELECT TB5.LOOKUP_NAME FROM TB_BAS_LKP
TB5 WHERE
TB5.BUSINESS_TYPE='TB_BAS_SPSX.DATA_MODE' AND
TB5.LOOKUP_TYPE
= TB1.DATA_MODE) AS DATA_MODE,
TB1.DISPLAY_ORDER,
(SELECT
TB5.LOOKUP_NAME
FROM TB_BAS_LKP TB5 WHERE
TB5.BUSINESS_TYPE='TB_BAS_SPSX.CHK_TYPE' AND
TB5.LOOKUP_TYPE =
TB1.CHK_TYPE) AS CHK_TYPE,
(SELECT TB5.LOOKUP_NAME
FROM TB_BAS_LKP TB5
WHERE
TB5.BUSINESS_TYPE='TB_BAS_SPSX.IS_NULL' AND
TB5.LOOKUP_TYPE =
TB1.IS_NULL) AS IS_NULL,
TB1.MIN_VAL, TB1.MAX_VAL,
TB1.CLUE_INFO,
(SELECT TB5.LOOKUP_NAME FROM TB_BAS_LKP
TB5 WHERE
TB5.BUSINESS_TYPE='TB_BAS_SPSX.IS_CLU_CHL' AND
TB5.LOOKUP_TYPE =
TB1.IS_CLU_CHL) AS IS_CLU_CHL,
TB1.PARENT_SPSX_KEY,
(SELECT
TB5.LOOKUP_NAME FROM TB_BAS_LKP TB5 WHERE
TB5.BUSINESS_TYPE='TB_BAS_SPSX.IS_VALID' AND TB5.LOOKUP_TYPE =
TB1.IS_VALID) AS IS_VALID,
TB1.REMARK, TB1.INPUT_UNIT, TB1.INPUT_INFO,
TB1.CHK_PARAM, TB1.ZM, TB1.EN,
TB1.ENSHORT, TB1.XSCJ, TB1.ZMEN,
(SELECT
LISTAGG(TB3.WARE_NAME, ', ') WITHIN GROUP (ORDER BY TB3.WARE_KEY)
WARE_NAME FROM TB_BAS_BED TB3 INNER JOIN TB_BAS_SPSX_TLTN TB2 ON
TB2.WARE_KEY = TB3.WARE_KEY WHERE TB1.SPSX_KEY = TB2.SPSX_KEY ) AS WARE_NAME

FROM
TB_BAS_SPSX TB1



<!-- 获取list -->
<select id="getTbBasSpsxVoList" parameterType="map"
resultMap="TbBasSpsxResultMapVo">
SELECT * from VW_TB_BAS_SPSX TB1
WHERE 1=1
<if test="wareName!=null and wareName!=''">
AND (SELECT
LISTAGG(TB3.WARE_NAME, ', ') WITHIN GROUP (ORDER BY TB3.WARE_KEY)
WARE_NAME FROM TB_BAS_BED TB3 INNER JOIN TB_BAS_SPSX_TLTN TB2 ON
TB2.WARE_KEY = TB3.WARE_KEY WHERE TB1.SPSX_KEY = TB2.SPSX_KEY ) LIKE '%${wareName}%'
</if>
<if test="spsxName!=null and spsxName!=''">
AND TB1.SPSX_NAME LIKE '%${spsxName}%'
</if>
</select>


函数:

也是放在sql中类似系统函数一样用


CREATE OR REPLACE FUNCTION FC_GET_AREANAME (
  F_AREA_KEY VARCHAR2)
RETURN VARCHAR2 IS
  V_AREA_LEVEL VARCHAR2(1);
  V_RETNAME VARCHAR2(256);
  V_AREA_FULL_NAME VARCHAR2(128);
  V_COUNT INTEGER;
  V_PARENT_AREA_KEY VARCHAR2(32);
BEGIN
V_RETNAME:='';
SELECT COUNT(1) INTO V_COUNT
    FROM TB_BAS_AREA_FULL
   WHERE AREA_KEY=F_AREA_KEY;
IF V_COUNT = 0 THEN
   RETURN '??????';
END IF;

  SELECT PROVINCE_NAME||CITY_NAME||COUNTY_NAME
    INTO V_AREA_FULL_NAME
    FROM TB_BAS_AREA_FULL
   WHERE AREA_KEY=F_AREA_KEY;

  RETURN V_AREA_FULL_NAME;

END;





public QueryResult findDataList(Map<String, Object> searchMap, Pager page)
    throws Exception
  {
    StringBuffer sqlBuff = new StringBuffer();
    sqlBuff.append("select A.*,FC_GET_AREANAME(A.CITY_AREA_KEY) AREA_NAME from TB_CUS_FIRM_WEB A WHERE 1 = 1");
    if (searchMap != null) {
      for (String key : searchMap.keySet())
      {
        Object obj = searchMap.get(key);
        if (!BeanUtils.isNull(obj)) {
          if ("customerName".equals(key)) {
            sqlBuff.append(" AND (lower(trim(CHINESE_NAME)) LIKE '%'||lower(trim(:customerName))||'%' OR lower(trim(ENGLISH_NAME)) LIKE '%'||lower(trim(:customerName))||'%')");
          } else if ("email".equals(key)) {
            sqlBuff.append(" AND lower(trim(TRADE_MAN_EMAIL)) LIKE '%'||lower(trim(:email))||'%' ");
          }
        }
      }
    }
    sqlBuff.append("AND USER_CHK='A'");
    sqlBuff.append(" ORDER BY A.CUSTOMER_KEY DESC ");
    return this.commonDao.findObjectsBySQL(sqlBuff.toString(), searchMap, page);
  }
 

存储过程:
就是Java代码调用
分享到:
评论

相关推荐

    自己总结的数据库oracle视图用法

    自己总结的数据库oracle视图用法自己总结的数据库oracle视图用法

    数据库实验报告视图的使用

    通过视图的创建过程,理解视图的概念和意义,掌握视图的基本使用方法。 2. 实验要求 通过视图的设计和定义,掌握建立视图的基本方法,包括通过单张表建立视图和通过多张表建立视图,通过在定义的视图上进行查询,...

    Sanic框架基于类的视图用法示例

    本文实例讲述了Sanic框架基于类的视图用法。分享给大家供大家参考,具体如下: 简介 基于类的视图只是实现对请求响应行为的类,他们提供了一种在同一端点上划分不同HTTP请求类型的处理方式。不是定义和装饰三个不同...

    c#使用列表视图控件例子

    里面详细介绍了c#使用列表视图控件例子。

    angular4强制刷新视图的方法

    使用angular的过程中有时会出现数据已经更新了,但是对于的视图没有更新,针对这一情况,可以是用angular提供的方法强制更新视图。 这里使用NGZone来更新视图 import {NgZone} from '@angular/core'; constructor...

    Flask框架路由和视图用法实例分析

    本文实例讲述了Flask框架路由和视图用法。分享给大家供大家参考,具体如下: 创建一个简单flask框架程序 #1.导入Flask类 from flask import Flask #2.创建Flask对象接收一个参数__name__,它会指向程序所在的包 app...

    iOS中的UIKeyboard键盘视图使用方法小结

    键盘视图我们平时在做App的时候都要调用得到,这里我们就来整理一下iOS中的UIKeyboard键盘视图使用方法小结,需要的朋友可以参考下

    树视图与列表视图

    详细的介绍mfc树视图与列表视图的创建与用法,方便初学者学习

    数据库:掌握视图的创建方法

    :一、使用命令创建视图并对视图进行查询、修改、删除等操作;二、用命令的方法创建索引,以及进行重命名和删除操作;三、建立完整性约束,并对其进行相应操作;四、创建存储过程,并对其进行查看,

    MySQL数据库:使用NAVICAT工具创建和管理视图.pptx

    使用NAVICAT工具创建和管理视图 数据视图 课程目标 掌握 —— 通过NAVICAT创建视图的方法; 掌握 —— 通过NAVICAT修改视图的方法; 掌握 —— 通过NAVICAT删除视图的方法。 使用NAVICAT工具创建和管理视图 小结 ...

    数据库视图的详细用法讲解

    视图的详细讲解 过程很详细 及时帮助掌握视图的相关用法

    实验四 视图、数据控制

    1、掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言查询语句的理解。 2、掌握用查询分析器和视图创建向导的方法创建视图。 3、学会使用SQL数据控制语句来进行授权控制和权限回收。 4、了解高级...

    数据库实验报告 视图的定义及使用实验(详细版有截图的)

    实验三(1)视图的定义及使用实验 一、实验目的 使学生掌握 SQL Server中的视图创建及删除的方法,加深对视图和SQL Server图表作用的理解。 本实验需要1学时。 二、实验内容 1. 启动数据库服务软件SQL Server 2000的...

    TIA PORTAL wincc中配方recipe组态及配方视图的使用方法.docx

    TIA PORTAL wincc中配方recipe组态及配方视图的使用方法

    Android高级组件Gallery画廊视图使用方法详解

    主要为大家详细介绍了Android高级组件Gallery画廊视图的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    MySQL数据库:创建视图.pptx

    掌握—— 创建视图的方法; 掌握 —— 查看视图的方法。 创建视图 使用CREATE VIEW语句创建视图 语法格式: CREATE [OR REPLACE] VIEW 视图名 [(列名列表)] AS select语句 [WITH CHECK OPTION] 列名列表:要想为视图...

    MySQL数据库:数据视图的修改和删除.pptx

    掌握 ——修改视图的方法; 掌握 —— 删除视图的方法。 视图的修改和删除 修改视图 视图被创建之后,由于某种原因(如基本表中的列发生改变或视图中增加或删除了若干列等),需要修改视图。 视图的修改和删除 使用...

Global site tag (gtag.js) - Google Analytics