今天碰到一个问题,A表与B表一对多,B表与C表一对多的关系,A表的主键是B表的外键,B表的主键是C表的外键。
现在要查,A表所对应的C表的记录
两种方案:
一、以C表的需要字段作为主要的方面去查A表所对应的记录
select
td.devid,
td.devname,
cai.title
from
CORE_ATTACHMENT_INFO cai,
taizhang_devices td,
taizhang_places tp,
taizhang_devicedocument tdd
where
td.devid = tdd.devid
and tp.placeid = td.placeid
and cai.billid = tdd.docid
但是这样出现了一个问题,A表记录的那个查出字段会重复
二、以A表为主
select
dev.devid,dev.devname,dev.devtypeid,dev.placeid,dev.pwlevel,
WMSYS.WM_CONCAT(att.title) title,
WMSYS.WM_CONCAT(att.attid) attid,
WMSYS.WM_CONCAT(att.filename) filename
from taizhang_devices dev
left join
taizhang_devicedocument doc
on dev.devid=doc.devid
left join CORE_ATTACHMENT_INFO att
on doc.docid=att.billid
group by dev.devid ,dev.devname,dev.devtypeid,dev.placeid,dev.pwlevel
oracle中可以合同行为列的函数。
但是其只有oracle 10g才支持
分享到:
相关推荐
在Oracle数据库中,多行记录的合并通常是为了将相同字段的多行数据整合成一行,以便于数据分析或者简化展示。这种操作在报表制作、数据整理等场景中非常常见。本篇文章将详细介绍Oracle中实现多行记录合并的几种方法...
本文实例讲述了oracle实现多行合并的方法。分享给大家供大家参考。具体分析如下: 在写sql时,经常会有将某列的字段合并起来,比如将某人名下每个月的工资列示,但是每个人只能占一行。 像这种场景,可能用行列转换...
### Oracle 10g与9i中的多行合并为一行函数详解 在Oracle数据库系统中,经常需要将多个行的数据合并成单行显示,尤其是在处理报告或者需要将多个值组合成一个字符串的情况下。本文将详细介绍如何在Oracle 10g与9i...
SQL语句用with将列分割成多列存为临时表,再将多行某个字段拼接合并为一行
在Oracle 11g及更高版本中,`LISTAGG`函数提供了一种简洁的方式来合并多行记录。它可以方便地处理聚合字符串,而且支持排序。例如: ```sql SELECT country, LISTAGG(city, ', ') WITHIN GROUP (ORDER BY city) ...
在SQL中,有时候我们需要将查询结果中多行的数据合并成一行,这在处理某些特定的报表或数据分析时非常有用。这种技术通常被称为行合并或行聚合。在本例中,我们将探讨如何使用纯SQL实现这一功能,特别是针对Oracle...
### Oracle多行合并为一行的方法 在Oracle数据库中,有时候我们需要将多行数据合并成一行进行展示或处理,尤其是在报表生成、数据展示等场景中。本文将详细介绍如何使用Oracle纯SQL语句实现这一功能,并通过具体...
多行记录合并 采用的是方法4,希望对你们有用
在Oracle数据库中,有时我们需要将多个字段值转换为单个字符串,或者将多行记录合并成一行,这在数据处理和报告生成时尤其常见。Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性...
此标题明确指出了解决的问题:在Oracle数据库中,如何将特定字段的多行记录合并成一行记录。这种需求通常出现在报告或数据分析的过程中,当需要将多个相关的值组合在一起进行展示或进一步处理时。 ### 描述理解 ...
在Oracle数据库中,合并多行记录的字符串是一个常见的需求,特别是在报表或数据分析中。这个问题涉及到字符串的连接和聚合,使得多个记录的某个字段值能够整合到一行。在Oracle中,虽然没有内置的聚合函数直接支持...
Oracle 中实现行转列功能,并使用逗号进行隔开拼接,成为一条数据是指将多行数据合并成一行数据,并用逗号分隔每个字段的值。这种功能在实际应用中非常有用,例如在报表生成、数据分析和数据整合等场景中。 在 ...
例如,'徐风年'的`teststr`是'洛阳,贾家嘉,姜姒,鱼幼薇,裴南苇,红薯',这些值将在查询中被拆分成多行。 6. **查询结果**: 最终的查询将返回每个`name`对应的`teststr`中的每个元素,以单独的行显示,不再包含逗号...
在进行SQL优化的过程中,Oracle中的`HINT`是一种非常实用且强大的工具,它允许数据库管理员或开发者通过在SQL语句中添加注释的方式直接指导Oracle的优化器如何执行查询计划。这种方式可以有效地调整数据访问路径、...
多列转换成字符串是指将多个列数据合并成一个字符串数据。例如,有一个表t_col_row,其中包含多个列c1、c2、c3,需要将这些列数据合并成一个字符串数据。 可以使用LISTAGG函数来实现多列转换成字符串,例如: ```...
在SQL中,有时候我们需要将多行数据合并成一行,特别是在处理具有多个相关值的列时。这个场景在处理报告、汇总或分析时尤其常见。在给出的示例中,我们看到一个名为`tb`的表格,它有五列:`standards`、`amount`、`...
在Oracle数据库中,有时我们需要将同一表中多个列的值合并为一个字符串,这被称为列合并。Oracle提供了多种方法来实现这一功能,特别是在不同版本中,这些方法有所不同。以下是Oracle列合并的一些常用方法: 1. **...