首页 > 解决方案 > 格式化查询结果

问题描述

假设我有一个返回 column1、column2 的查询。我希望能够将结果格式化为 Oracle 中所需的输出。

我想弄乱字符串,这就是我问这个问题的原因~~。

create table taTest(
column1 varchar(50),
column2 varchar(50)
)

这是我要格式化结果的基本查询:

select distinct(column1),column2 from taTest;

desired output(for each query result) : column1value(column2value)

我试过这样的事情:

select wm_concat(distinct(column1)||'('||column2||')') as result  from taTest;

但似乎我没有以正确的方式使用 wm_concat 。

感谢您提供的任何意见。

标签: oracle

解决方案


distinct(column1), column2是我见过的最大的谬误之一。因为这和

select distinct column1, column2. . .

因此,您只需要这个

select
    column1 || '('|| column2 || ')' as result
from
    taTest
group by
    column1, column2;

在这种情况下group bydistinct执行相同的功能

回到distinct(column1)- 这是错误的功能。SQL 解析的规则是将其中的任何内容( )视为单个单词\组。因此(column1)distinct使用()与空白空间分开 - 相同的东西。你可以做

select distinct (column1), (column2) . . -- same thing

推荐阅读