将逗号分隔值转换为多行

2023-11-29

我有一个这样的表:

ID NAME Dept_ID
1  a     2,3
2  b
3  c     1,2

Department 是另一个以 dept_id 和 dept_name 作为列的表。我想要的结果是,

ID Name Dept_ID
 1   a    2
 1   a    3
 2   b
 3   c    1
 3   c    2

有什么帮助吗?


你可以这样做:

--Dataset Preparation 
with tab(ID, NAME,Dept_ID) as (Select 1, 'a', '2,3' from dual
                               UNION ALL
                               Select  2,  'b','' from dual
                               UNION ALL
                               Select 3,  'c' ,  '1,2' from dual)      
--Actual Query                      
select distinct ID, NAME, regexp_substr(DEPT_ID,'[^,]+', 1, level) 
from tab    
connect by  regexp_substr(DEPT_ID,'[^,]+', 1, level) is not null
order by 1;

Edit:

基于我需要加入哪个专栏?在一张表中我有逗号 分开的 ID,在其他表中我只有 ID

with tab(ID, NAME,Dept_ID) as (Select 1, 'a', '2,3' from dual
                               UNION ALL
                               Select  2,  'b','' from dual
                               UNION ALL
                               Select 3,  'c' ,  '1,2' from dual) ,
      --Table Dept
      tbl_dept (dep_id,depname) as ( Select 1,'depa' from dual
                                       UNION ALL
                                      Select 2,'depb' from dual 
                                      UNION ALL
                                      Select 3,'depc' from dual      
                                    ) ,      
       --Seperating col values for join. Start your query from here using with clause since you already have the two tables.                            
       tab_1 as (select distinct ID, NAME, regexp_substr(DEPT_ID,'[^,]+', 1, level) col3 
                from tab  
                connect by  regexp_substr(DEPT_ID,'[^,]+', 1, level) is not null
                order by 1)
--Joining table.                
Select t.id,t.name,t.col3,dt.depname
from tab_1 t
left outer join tbl_dept dt
on t.col3 = dt.dep_id
order by 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将逗号分隔值转换为多行 的相关文章

  • 如何调试参数化 SQL 查询

    我使用 C 连接到数据库 然后使用 Ad hoc SQL 来获取数据 这个简单的 SQL 查询非常方便调试 因为我可以记录 SQL 查询字符串 如果我使用参数化 SQL 查询命令 有没有办法记录 sql 查询字符串以进行调试 我想就是这样的
  • 使用显式创建表语句与 select into 创建表

    使用显式创建表语句和加载数据与选择数据之间是否存在性能差异 此示例仅显示 2 列 但问题是针对使用非常大的表 下面的示例也使用临时表 尽管我也想知道使用常规表的效果 我认为无论表格类型如何 它们都是相同的 临时表场景 Explicitly
  • 使用 FileTable 通过 SQL INSERT 创建子目录

    之前 我请求如何在一个目录中创建一个目录FileTable不使用文件 I O API https stackoverflow com q 10483906 175679 我现在想为刚刚创建的父目录创建一个子目录 在插入期间如何分配我的父母
  • 如何插入包含“&”的字符串

    如何编写包含 字符的插入语句 例如 如果我想将 J J Construction 插入数据库的列中 我不确定这是否有什么不同 但我正在使用 Oracle 9i 我总是忘记这一点 然后又回到它 我认为最好的答案是迄今为止提供的答复的组合 首先
  • 时间:2019-03-17 标签:c#datatypes->oracledatatypes

    我喜欢在 Oracle 数据库中保存不同的 C 数据类型 int decimal double string Guid 有谁有一个表显示要使用哪些 Oracle 数据类型 我找到了一些表格 显示了哪些 c 数据类型可用于不同的 oracle
  • SQLite 使用循环重新编号 ID

    您好 我有一个包含许多插入行的表 我需要按 id 对所有行重新编号并排序 我找到了这段代码 但它对我不起作用 SET i 100 UPDATE main Categories SET ID i i 1 WHERE Name White AL
  • 如何删除MySQL中的所有事件

    如果我想删除某个事件 我需要查询类似的内容 DROP EVENT IF EXISTS eventname 但我找不到一次性删除所有事件的命令 必须一项一项地删除 有没有一次性删除所有事件的SQL DROP EVENT IF EXISTS S
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p
  • 获取 SQL 表上的某些百分位值

    假设我有一个表 其中存储用户 他们拥有的红球数量 球总数 蓝色 黄色 其他颜色等 以及红球与球总数的比率 架构如下所示 user id ratio red balls total balls 1 2 2 10 2 3 6 20 我想根据排序
  • Mysql UUID_SHORT() 与 UUID() 相当吗

    如果您愿意的话 请快速提出问题或意见 我需要为数据库表生成一些 UUID 自动递增密钥不会减少它 因为我还需要密钥在数据库和系统中保持唯一 UUID 工作正常 但其输出对于行将导出到的某些系统来说太长 UUID SHORT 做得很好 我已经
  • 如何处理多个连接

    我有一个复杂的查询 需要总共 4 个表中的字段 内部联接导致查询花费的时间比应有的时间长得多 我已经运行了一个 EXPLAIN 语句 其可视化结果附在下面 这是我的查询 SELECT pending corrections correcte
  • SQLite:从命令行仅将模式转储到 .sql 文件中

    我正在尝试转储架构test db仅 即没有数据 到名为的文件中schema sql从 OS X 中的命令行 无需启动 sqlite3 我知道我能做到 sqlite3 open test db output schema sql schema
  • Python Pandas 从宽到长的格式更改以及列标题拆分

    我有一个包含以下列标题和行示例的表 Subject Test1 Result1 Test1 Result2 Test2 Result1 Test2 Result2 0 John 10 0 5 20 0 3 我想将其改造成 Subject l
  • Oracle 数据库 11g 中的访问控制列表 (ACL) 拒绝网络访问

    最近我们从 Oracle 10g 切换到 11g 现在我发现我的邮件功能不起作用 我现在收到错误 ORA 24247 network access denied by access control list ACL 因此 我进行了一些谷歌搜
  • 当有“拥有”时,为什么你有“哪里”[重复]

    这个问题在这里已经有答案了 我知道这个问题已经被讨论了很多 但我的研究都无法让我相信 where and havingMySQL 中的 子句 据我了解 我们可以使用 where 子句实现所有可以完成的操作having 例如 select f
  • 如何设计一个存储非常大数据的表?

    我需要在Oracle中设计一个表 每天将存储2 5TB的数据 它可以增长到 200TB 超过 200TB 时记录将被清除 将其保留在 OLTP 中是一个可行的选择 还是需要将其转移到数据仓库 DB 请建议我在设计该表或数据库的架构时应牢记的
  • 使用 impala 按范围连接表的有效方法

    我第一个有下表 Range 包括值范围和附加列 row From To Country 1 1200 1500 2 2200 2700 3 1700 1900 4 2100 2150 The From and Toare bigint并且是
  • T-SQL参数嗅探重新编译计划

    我有 SQL 命令 exec sp executesql N SELECT TOP 10 FROM mytableView WHERE Name LIKE Value0 ORDER BY Id DESC N Value0 varchar 5
  • Java .split("|") 不工作

    我刚刚遇到了一个问题分割法 http docs oracle com javase 6 docs api java lang String html split 28java lang String 29for 字符串不适用于字符 作为一个

随机推荐

  • AngularJS UI Router:由于可选参数而导致路由冲突

    我的 AngularJS 应用程序中有几条路由 我使用 UI Router 在我的站点中的状态 页面之间进行路由 我遇到的一个问题是 由于我拥有 需要网站主页的可选参数 因此我的路线存在冲突 我有一个主页的路线 example com 或多
  • 解析一个'.'链式标识符列表,带有 qi::lexeme 并防止空格跳过

    我目前正在开发一个基于 Spirit 的表达式解析器 它应该允许最终 在遥远的未来 表达式 例如 a b c 10 20 x y z a b c a b e c d e 4 e f a b 23 d 23 b e a b c x y 成员访
  • Sequelize:原始数据和模型之间的映射

    我在使用原始查询从 MySQL 数据库检索数据时遇到一些问题 问题在于原始数据和sequelize 中定义的模型实例之间的映射 特别是那些在数据库中具有下划线名称并在模型中具有驼峰式名称的字段 我这样定义 Store 模型 sequeliz
  • 用于验证字符串中括号的 JS 函数

    伙计们 我想问你如何创建一个函数来检查字符串中的括号是否正确放置 例如 a b 4 2 c 5 我必须检查括号 我尝试了一些方法 但似乎不起作用 抱歉 我是 javascript 的新手 function checkBrackets str
  • 如何将文件从独立存储复制到下载文件夹?

    我正在尝试将数据库文件从独立存储复制到下载文件夹 或用户可以访问的任何文件夹 目前我的数据库存储在 data user 0 com companyname appname files Databases MyDatabase db 我尝试使
  • 无法删除 JTextPane 中 html 内容的额外行距

    我无法将 Java 中的行挤在一起JTextPane如果我将内容类型设置为text html 我希望它们像内容类型一样紧密地结合在一起text plain 默认值 The line height top margin CSS 属性似乎没有帮
  • PHP 如何将对象数组与数组数组合并

    首先 抱歉冗长的解释 我在 PHP 中有两个数组 第一个数组是对象数组 第二个数组是数组的数组 基本上 我想循环遍历并将对象与其匹配的数组合并 然后返回合并的对象 请参阅以下内容print r 对象结构数组 Array 0 gt stdCl
  • 在 Azure Blob 存储上上传大文件时“流太长”

    我尝试将大文件 4Gb 上传到 Azure Blob 存储 但失败 根据这篇文章 https learn microsoft com en us azure storage storage dotnet how to use blobs 这
  • Excel/VBA - 如果网络连接不存在则中止脚本

    是否有任何 VBA 代码可以查找当前的互联网连接 我有一个将在计时器上运行的代码 此代码将打开本地网络共享驱动器上的文件 我正在寻找某种类型的 On Error Goto ErrorMessage 代码 如果它在网络未连接时尝试打开文件 您
  • Marshal (Ruby) 管道:将序列化对象发送到子进程

    我需要使用 Marshal 序列化 Ruby 中的对象 并通过管道将其发送到子进程 我怎样才能做到这一点 我的代码如下所示 我的问题在评论中 data Marshal dump data call sub process ruby r a
  • SQL 作业存在事务日志问题

    我有一个仅执行存储过程的 SQL 作业 每天早上当作业尝试运行时 我都会收到以下错误 当前事务无法提交 并且无法支持写入日志文件的操作 当我继续尝试重新启动作业时 它总是给我同样的错误 但是 如果我只是执行存储过程而不使用作业 它就可以正常
  • 如何在 Rails 4 中格式化 db:datetime 记录中的时间和日期?

    我有一个var在我看来 返回日期和时间datetime数据库记录为 UTC 格式 输出如下所示 2014 01 21 03 13 59 UTC 我该如何格式化它 Date parse var 会给 gt Tue 21 Jan 2014在 I
  • 与 DrawText 函数冲突

    我正在开发一个多平台应用程序 在一个组件中我有一个名为 DrawText 的类方法 不幸的是 我收到一个链接器错误 仅在 Windows 上 指出此类的 DrawTextW 方法存在未解析的外部符号 我之前见过以 Text 结尾的其他方法
  • 将值从一种形式传递到另一种形式

    我有两个表单 我需要将值从 form1 textbox1 传递到 form2 variable Form1 string Ed En public string En1 get return En set En value public s
  • 包裹在 Horizo​​ntalScrollView 中的 TabWidget 不随 ViewPager 滚动

    我必须使用TabHost代替ActionBarTabs为了使它们可以滚动 我已经包裹了我的TabWidget in a HorizontalScrollView 但是HorizontalScrollView不按照以下方式自行滚动ViewPa
  • Slowcheetah 已安装,但没有转换选项

    我在 Visual Studio 2013 中有一个使用 MVC 5 和 EF 6 的 NET 4 5 项目 我想要对 app config 进行转换 I ve installed the SlowCheetah project via N
  • 为矩阵的每一行查找 5 个连续的数字 >= 3

    我有以下矩阵 mdat lt matrix c 6 2 4 4 5 1 6 2 1 5 1 3 3 5 4 5 1 4 2 2 4 3 4 4 4 4 3 3 1 1 3 2 3 3 3 3 3 2 2 2 1 2 2 2 2 2 1 1
  • Chrome 开发者工具中的 Websocket

    目前正在与Socket IO使用网络套接字 我有几个关于如何在 chrome devtools 中解释 websockets 的问题 当我们在 chrome 中得到以下输出时 问题 该方法仍然由HTTPget 方法动词 难道是因为这个HTT
  • 在 Altair 中生成“闪避”或“并排”条形图/柱形图?

    如果之前有人问过这个问题 我深表歉意 但我正在寻找一种方法来创建 躲避 的条形图 language from ggplot2 在 python 中使用 Altair 库 我知道 Altair 有这个例子 import altair as a
  • 将逗号分隔值转换为多行

    我有一个这样的表 ID NAME Dept ID 1 a 2 3 2 b 3 c 1 2 Department 是另一个以 dept id 和 dept name 作为列的表 我想要的结果是 ID Name Dept ID 1 a 2 1