表一:
name |
type |
A1 |
02 |
A1 |
03 |
A2 |
02 |
A3 |
03 |
表二:
name |
type02 |
type03 |
A1 |
是 |
是 |
A2 |
是 |
否 |
A3 |
否
|
是 |
将表一的结果转为表二有下面这几种方法。
--第一种方法
select t.code,
t.name,
decode(p1.type_code, '02', '是', '否') as 指标单位,
decode(p1.type_code, '03', '是', '否') as 决算单位
from base_unit t
left join base_unit_type p1 on t.guid = p1.unit_guid
and p1.type_code = '02'
left join base_unit_type p2 on t.guid = p2.unit_guid
and p2.type_code = '03'
where (p1.type_code is not null or p2.type_code is not null)
order by p1.type_code, p2.type_code, t.code;
--第二:
select * from (
select code, name, nvl((select '是' from base_unit_type a where a.unit_guid = t.guid
and a.type_code = '02'), '否') as 指标单位,
nvl((select '是' from base_unit_type a where a.unit_guid = t.guid
and a.type_code = '03'), '否') as 决算单位
from base_unit t
where exists (select 1s
from base_unit_type p
where p.unit_guid = t.guid
and p.type_code in ('02', '03')) ) m
order by m.指标单位 desc , m.决算单位 desc, m.code ;
--第三:
select t.code, t.name, max(case when t.type_code='02' then '是' else '否' end) as aa,
max(case when t.type_code='03' then '是' else '否' end) as bb
from
(
select t1.code, t1.name, t2.type_code
from base_unit t1, base_unit_type t2
where t1.guid = t2.unit_guid
and t2.type_code in ('02', '03')
) t
group by t.code,t.name
order by aa desc ,bb desc
--第四:
select m.code,m.name, decode(aa,1,'index_unit','NO'),decode(bb,1,'unit','NO') from (
select k.code,k.name, max(index_unit) as aa,max(unit) as bb from (
select code, name, 1 as index_unit, 0 as unit
from base_unit t
where exists (select 1
from base_unit_type p
where p.unit_guid = t.guid
and p.type_code = '02')
union all
select code, name, 0 as index_unit, 1 as unit
from base_unit t
where exists (select 1
from base_unit_type p
where p.unit_guid = t.guid
and p.type_code = '03')
) k
group by k.code, k.name
) m
order by m.aa+m.bb desc, m.aa, m.code
分享到:
相关推荐
C语言常用查询手册 C语言是一种通用的高级编程语言,广泛应用于操作系统、嵌入式系统、应用软件等领域。以下是C语言常用查询手册,涵盖头文件查询、关键字查询、ASCII码查询等多个方面。 头文件查询 C语言中...
T100制造常用查询报表V3.0.xlsx
es常用查询语法
本资料"SQL常用查询语句大全"是一份非常适合初学者的教程,它涵盖了SQL语言的基本概念和常用操作。 首先,我们要理解SQL的四大基本操作:SELECT(选择)、INSERT(插入)、UPDATE(更新)和DELETE(删除)。这些...
### PL/SQL 常用查询语句详解 在数据库管理与开发中,查询语句是必不可少的一部分。本文档将围绕“PL/SQL常用查询语句”这一主题展开,详细介绍数据库查询的基础概念以及一系列实用的SQL查询技巧。通过本文的学习,...
标题 "一个简单的常用查询" 暗示了我们即将探讨的是在PowerBuilder(PB)环境中进行数据查询的方法,特别是关于DataWindow(DW)对象的SQL查询。PowerBuilder是一款流行的、基于事件驱动的可视化编程工具,主要用于...
### C++常用查询手册知识点详解 #### 一、头文件查询 **1. `<algorithm>`** - **功能**: 提供了一系列通用算法,用于处理容器和其他序列类型。 - **非修改性序列操作**(12个): - `for_each()`: 对序列中的每...
本篇文章将基于"oracle常用查询语句示例"这一主题,深入探讨在Oracle中执行多表查询和单表中复杂查询的方法。 首先,我们来看单表查询。在Oracle中,基础的SELECT语句用于从单个表中检索数据。例如: ```sql ...
### Oracle 10g常用查询语句 #### 1. 查询当前用户 `select user from dual;` 此查询语句用于获取当前连接数据库的用户名。`dual`表是一个特殊表,每个Oracle数据库都包含它,主要用于执行简单的计算或返回单行...
根据提供的文件信息,本文将详细解析“常用查询表脚本<改下可方便查询SP、函数>”这一知识点,包括其适用场景、实现原理及如何根据实际需求进行修改等内容。 ### 一、背景介绍 在数据库管理与维护过程中,经常需要...
压力容器常用查询大全
在日常运维和开发过程中,掌握Oracle的常用查询技巧至关重要。以下是一些关于"Oracle常用查询"的知识点详解: 1. **SQL语言基础**:Oracle查询主要依赖SQL(结构化查询语言),包括SELECT、FROM、WHERE、GROUP BY、...
这个总结主要涵盖了Django ORM的常用查询操作,旨在帮助开发者更高效地进行数据操作。 1. **模型查询基础** - `objects` manager:每个Django模型都有一个默认的查询集管理器`objects`,用于执行查询。 - `get()`...
Hibernate常用查询语句.doc
### MySQL 常用查询语句详解 #### 一、查询数值型数据 - **基本语法**:`SELECT * FROM 表名 WHERE 条件;` - **示例**:`SELECT * FROM tb_name WHERE sum > 100;` - 这里使用了比较运算符 `>` 来筛选 `sum` 字段...
mysql常用查询语句
oracle常用查询 问题+答案 觉得是初学 比较好的东西。
SQL重要的常用查询语句汇总,通过该文档能够熟练掌握各种查询语句,熟练应对各个情况下数据联查。
oracle数据库表空间常用查询以及相关操作命令,实际开发中遇到的点滴备忘录
3GPP和3GPP2协议分类清单--常用查询表