`
dacoolbaby
  • 浏览: 1267206 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle和Cognos Framework Manager中decode妙用,CASE WHEN也可以!

阅读更多

我们都知道Decode函数可以用来做什么作用,如果这个不知道的话,请找下度娘。

那么,今天就来介绍一下,在WHERE条件语句里面使用Decode函数。

 

由浅入深,先一步一步来。。

with tmp as(
  select 1 val,null flag from dual union all
  select 1 val,'a' flag from dual union all
  select 2 val,'b' flag from dual union all
  select 3 val,'c' flag from dual
)
select 1,decode(flag,'a',1,'b',2,'c',3, 0) 
from tmp

 

这样,我们查出来的数据为:

 1 1 --》a
 1 2 --》b
 1 3 --》c

 

这一步,没有问题。看这个,晕了没有:

with tmp as(
  select 1 val,null flag from dual union all
  select 1 val,'a' flag from dual union all
  select 2 val,'b' flag from dual union all
  select 3 val,'c' flag from dual
)
select 1,decode(flag,'a',1,'b',2,'c',3, 0) 
from tmp
where decode(val,1,1,2) 
      = decode(flag,'a',1,'b',2,'c',3, 0) 
;

换一种写法:

with tmp as(
  select 1 val,null flag from dual union all
  select 1 val,'a' flag from dual union all
  select 2 val,'b' flag from dual union all
  select 3 val,'c' flag from dual
)
select 1,decode(flag,'a',1,'b',2,'c',3, 0) 
from tmp
where (val=1 and flag = 'a')
        or
      (val <> 1 and flag = 'b')

 这样看懂了吧。。

其实decode在这种情况下只是一种简写而已。

 

但是对于Cognos FrameworkManager,就是用来匹配参数了。

就是用于根据传递过来的参数的不同,使用不同的过滤条件。

with tmp as(
  select 1 val,null flag from dual union all
  select 1 val,'a' flag from dual union all
  select 2 val,'b' flag from dual union all
  select 3 val,'c' flag from dual
)
select 1,decode(flag,'a',1,'b',2,'c',3, 0) 
from tmp
 and decode(#prompt('display','string') #,'1',1,
              			    '2',val,
              			    '0') 
	=
       decode(#prompt('display','string') #, '1',1,
              			    '2',2,
              			     '1')

 

解释一下,当display参数为1 的时候,不过滤。

当display参数为2的时候,过滤val =2 。

当display参数为空或者其他的时候,过滤掉所有的 0=1。

 

活学活用。。

 

今天又发现,CASE WHEN也能如此方便地使用:

with tmp as(
select 1 id, 'kelly' name from dual union all
select 2 id, 'sam' name from dual union all
select 3 id, 'jason' name from dual union all
select 4 id, 'kobe' name from dual union all
select 5 id, null name from dual
)
select id, name from tmp
where id = case when length(name)>1 then length(name)
           else 5 end
;

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    Cognos Framework Manager

    包是 Framework Manager 中组织和管理元数据的主要单位,通过合理地使用包,可以实现以下功能: - 分类和组织元数据:按主题区域或项目进行分类。 - 版本控制:跟踪元数据的变化历史。 - 共享和重用:在不同的报表和...

    Cognos FrameWork Manager

    Cognos Framework Manager是IBM Cognos Business Intelligence产品套件中用于创建和管理业务智能元数据模型的组件。元数据是关于数据的数据,它为数据仓库和业务智能系统提供了一个抽象层,使最终用户能够更容易地...

    cognos Framework manager的教学文档(flash版)

    Cognos Framework Manager是IBM的一款强大的数据建模工具,它用于构建和管理Cognos Analytics的数据基础,使得用户能够创建复杂的数据模型,从而进行高效的数据分析和报告。本教学文档以Flash形式呈现,旨在帮助初学...

    cognos framework使用指南

    Cognos Framework Manager是IBM Cognos Business Intelligence套件中的核心组件之一,主要用于构建和管理复杂的业务模型,包括数据源、度量、维度和其他业务对象。通过理解其功能与操作流程,企业能够更高效地分析...

    Cognos Framework Manager User Guide

    Framework Manager is a metadata modeling tool. A model is a business presentation of the information in one or more data sources. When you add security and multilingual capabilities to this business ...

    cognos framework manager 创建维度和测度

    Congons Framework Manager 是一个元数据建模工具,可用来管理分析和报表用的数据。在这个过程中,需要在 Framework Manager 中对所导入的元数据进行维度建模。在维度建模,数据存储在两种表中。一种是 Dimension 表...

    IBM_Cognos_10_Framework_Manager

    完成模型构建后,可以通过 Framework Manager 将模型发布到 Cognos Connection,供报告开发者使用。Cognos Report Studio 和 Analysis Studio 可以直接基于这些模型创建交互式报告和分析,使业务用户能够直观地探索...

    元数据建模工具 Framework Manager

    在实际应用中,Framework Manager通常被用在数据仓库和商业智能(Business Intelligence,简称BI)项目中。数据仓库是企业数据的集中存储,用于支持决策分析。而Framework Manager通过高效地构建数据模型,为数据...

    cognos 10 framework manager 安装新手手册

    在现代商业智能(BI)领域,IBM Cognos Framework Manager (FM) 是一个强大的工具,用于构建和管理复杂的业务模型,以便更好地支持数据分析和报告需求。本文档旨在为初次接触 Cognos FM 的用户提供一个全面的指南,...

    Cognos Framework Manager业务建模教程.docx

    Cognos Framework Manager是IBM的一款强大的数据建模工具,它被广泛用于构建和管理复杂的商业智能(BI)和分析应用程序。本教程将深入探讨如何利用Cognos Framework Manager进行业务建模,帮助用户理解并掌握这个...

    Cognos FrameWork Manager培训PPT

    Cognos Framework Manager 完整培训资料,学习建模的请下载.

    Cognos Framework使用和实践.pptx

    在本文中,我们将深入探讨如何使用Cognos Framework Manager进行实际操作,包括创建新工程、构建查询主题、建立关系、发布模型以及在Query Studio中使用查询主题。 首先,我们从创建新工程开始。在Cognos Framework...

    使用Framework Manager建模和导入元数据

    在IT行业中,Cognos Framework Manager是一款强大的元数据建模工具,主要应用于IBM Cognos Business Intelligence环境中。本文将详细阐述如何使用Framework Manager进行建模和导入元数据,以帮助你更好地理解和操作...

    [IBM Cognos] IBM Cognos 10 Framework Manager

    [Packt Publishing] IBM Cognos 10 Framework Manager (英文版) [Packt Publishing] IBM Cognos 10 Framework Manager (E-Book) ☆ 出版信息:☆ [作者信息] Terry Curran [出版机构] Packt Publishing [出版...

    cognos 8 ,Framework

    **Framework Manager** 是IBM Cognos 8 报表平台中的核心组件之一,主要用于元数据模型的设计与构建。通过它,用户可以设计出符合业务逻辑的数据结构,并将这些结构发布到Cognos 8 Server 上供报表设计者使用。具体...

    Cognos FrameWork Mannager 构建企业元数据模型

    Cognos Framework Manager 是 IBM Cognos Business Intelligence (BI) 平台中的一个核心组件,专门用于构建企业元数据模型。元数据模型是BI应用程序的基础,它提供了对数据的结构化表示,使得业务用户能够理解和操作...

    在Framework+Manager中创建视图[1]

    Cognos Framework Manager是该套件中的一个重要组件,它主要用于数据建模和构建数据分析模型,为企业用户提供易于理解的数据视图。在这个主题“在Framework+Manager中创建视图[1]”中,我们将深入探讨如何利用Cognos...

    framework manager 入门 培训

    IBM Cognos Framework Manager 是一个强大的工具,专用于构建和管理数据模型,是IBM Cognos Analytics的重要组成部分。它允许数据分析人员和业务智能专家组织、整合来自不同数据源的信息,并将其转化为可分析的报告...

Global site tag (gtag.js) - Google Analytics