`
y806839048
  • 浏览: 1126065 次
  • 性别: 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数据库中的视图是SQL语言的一个重要特性,它允许用户创建虚拟表,这些虚拟表基于一个或多个实际的表或视图。视图提供了一种数据抽象的方式,简化...在学习Oracle数据库的过程中,理解和掌握视图的用法至关重要。

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

    本篇文章将深入探讨如何在C#中有效地使用列表视图控件,包括它的基本功能、属性、方法和事件。 首先,列表视图控件(System.Windows.Forms.ListView)主要用于在窗体上显示一系列项目。这些项目可以是文本,也可以...

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

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

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

    在本教程中,我们将深入探讨视图的详细用法,帮助你全面掌握这一强大工具。 首先,创建视图的基本语法是通过SQL语句定义的。例如,你可以使用`CREATE VIEW`语句来创建一个新的视图,该语句可以包含`SELECT`语句的...

    在Navicat中创建MySQL动态视图的方法

    ### 在Navicat中创建MySQL动态视图的方法 在数据库管理工具Navicat中,创建MySQL动态视图是一项非常实用的功能。动态视图允许用户通过一个简洁的接口来查询、更新多个表中的数据,这对于复杂的数据管理和分析尤其...

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

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

    listview控件可有4种不同的视图显示方法 (1).docx

    ListView 控件可有 4 种不同的视图显示方法 ListView 控件是 Windows 操作系统中的一种常用控件,能够显示大量的数据,并提供了多种视图显示方法。根据不同的应用场景,可以选择适合的视图显示方法。 一、视图显示...

    月视图和周视图切换控件

    综上所述,“月视图和周视图切换控件”不仅提供了一个直观且易于使用的界面来展示和管理日程安排,同时也展示了如何利用 C# 和 Windows Forms 平台来开发自定义控件的过程。对于那些希望在自己的应用程序中加入类似...

    Spring MVC--5.视图和视图解析器

    接下来,我们将深入探讨Spring MVC中的视图和视图解析器的工作原理及常见用法。 首先,我们来看视图。在Spring MVC中,视图通常是一个JSP、FreeMarker或Thymeleaf等模板引擎页面。这些模板引擎允许开发者将业务逻辑...

    angular4强制刷新视图的方法

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

    MFC视图编程 MFC视图编程 MFC视图编程

    MFC通过CDocument::AddView()和CWnd::DockControlBar()等方法支持多视图和浮动视图的创建。 7. **打印和预览**:MFC提供了CView的OnPrint()和OnPrepareDC()函数支持打印和打印预览功能。开发者需要覆盖这些函数以...

    oracle表字段或是视图字段添加备注方法

    Oracle 表字段或是视图字段添加备注方法 Oracle 是一个强大的关系数据库管理系统,提供了多种方式来添加备注信息到表字段或视图字段中。在本节中,我们将详细介绍如何使用 Oracle 的 Comment 机制来添加备注信息到...

    查询与视图.

    查询是一种从一个或多个数据源中获取满足特定条件的数据的方法,而视图则是以虚拟表的形式展示这些数据,提供了一种简化和定制数据访问的方式。 查询通常通过查询设计器或SQL语句实现。在Microsoft Visual FoxPro ...

    运用RUP 4+1视图方法进行软件架构设计

    ### 运用RUP 4+1视图方法进行软件架构设计 #### 一、引言 在软件开发过程中,架构设计是确保软件系统能够高效、稳定运行的关键环节。随着软件系统的复杂度不断提高,传统的单一视角已经无法满足设计需求。RUP 4+1...

    视图和索引的创建和使用实验报告.pdf

    通过本实验,我们掌握了视图和索引的创建、修改、使用等技能,了解了视图和索引在数据库管理系统中的应用,并掌握了使用 T-SQL 语句对表创建和删除索引的方法。同时,我们也了解了视图和索引在提高查询速度和数据...

    视图之间传值的方法

    本文将详细探讨五种常见的视图间传值方法,它们都是基于iOS设计模式实现的,具有高效、灵活的特点。这五种方法包括:代理(Delegate)、通知(Notification)、模型共享(Model Sharing)、Block和KVO(Key-Value ...

    MFC 单文档视图中进行多种视图的切换

    - 在这个函数中,根据当前文档和目标视图类型,调用CDocument的AddView()或RemoveView()方法来添加或删除视图。 - 使用CWnd::SetActiveView()函数激活新的视图。这个函数会确保新视图成为活动视图,并更新其窗口...

    MySQL--视图的定义

    - **CASCADE**: 当使用此选项时,MySQL不仅检查当前视图的条件,还会递归地检查所有依赖于该视图的其他视图的条件。 - **LOCAL**: 此选项只检查当前视图的条件,对于依赖它的视图则不进行检查。如果依赖视图自身带有...

    qtp视图方法大全

    * 自动化移动应用程序测试:使用 QTP 视图方法大全可以自动化移动应用程序测试,例如自动化点击按钮、自动化输入文本等。 QTP 视图方法大全是 QTP tester 在自动化测试中不可或缺的工具,可以帮助 tester 快速、...

    asp.net mvc 分部视图的基本使用

    另一种使用分部视图的方式是通过调用一个动作方法(Action Method)来获取。这通常涉及AJAX请求,以便动态更新页面的一部分。例如,我们可以创建一个名为`GetSidebar`的动作方法,然后在JavaScript中使用jQuery的`$...

Global site tag (gtag.js) - Google Analytics