如何根据特定列 SQL Oracle 的唯一值混合三行?
How can I Mix three rows based on the unique value of specific column SQL Oracle?
我想在 Oracle Developer 中编写一个 sql 查询以将三行转换为一行并合并这些行的值。
table 有三列。
column1 : NUMBER(10,0)
列 2:VARCHAR2(15 个字符)
第 3 列:时间戳(6)
我将第 2 列和第 3 列合并为一列。
起初我有:
我想根据 column1 的值(即 41)合并这三行。我想在最后一行:
你能帮我找到正确的查询吗?
编辑 by mathguy: oracle-sqldeveloper
标签是相关的,因为在写了正确的查询之后,仍然存在能够看到它的问题是"correct" 在 SQL 开发人员的查询结果 Window 中。这有点问题,因为 SQL 开发人员删除了白色 space 所以不清楚结果是否真的正确。这在评论和答案中进行了讨论。
select column1,
listagg(column2 || ' ' || to_char(column3, 'dd-MON-rr hh:mi:ss.ff6 AM'), chr(10))
within group (order by column3)
from table_name
group by column1
;
(未测试。)
这会将文本列显示为单个 table 行,但会显示为三行文本。
您可能还想为第二列指定一个别名。
我想在 Oracle Developer 中编写一个 sql 查询以将三行转换为一行并合并这些行的值。
table 有三列。 column1 : NUMBER(10,0) 列 2:VARCHAR2(15 个字符) 第 3 列:时间戳(6)
我将第 2 列和第 3 列合并为一列。 起初我有:
我想根据 column1 的值(即 41)合并这三行。我想在最后一行:
你能帮我找到正确的查询吗?
编辑 by mathguy: oracle-sqldeveloper
标签是相关的,因为在写了正确的查询之后,仍然存在能够看到它的问题是"correct" 在 SQL 开发人员的查询结果 Window 中。这有点问题,因为 SQL 开发人员删除了白色 space 所以不清楚结果是否真的正确。这在评论和答案中进行了讨论。
select column1,
listagg(column2 || ' ' || to_char(column3, 'dd-MON-rr hh:mi:ss.ff6 AM'), chr(10))
within group (order by column3)
from table_name
group by column1
;
(未测试。)
这会将文本列显示为单个 table 行,但会显示为三行文本。
您可能还想为第二列指定一个别名。