【问题标题】:Group two rows into one in TOAD data point在 TOAD 数据点中将两行合二为一
【发布时间】:2019-04-18 20:23:54
【问题描述】:

我当前的结果集如下:

Case_ID    |   Action_name    |   Status_code

1             John                  Valid

1             Peter                 Valid

我想要这个

Case_ID      |    Action_name   |    Status_Code

1              John, Peter              Valid

也可以显示为

Case_ID       |  Action_name1   |   Action_name2   |   Status_code

1                   John               peter              Valid

任何可能的信息都会很有帮助。我尝试了 Pivot 功能,但由于某些原因,我无法正确使用它。我知道我们可以在 SQL Server 中执行此操作,但我是 TOAD 数据点的新手。

【问题讨论】:

    标签: sql oracle toad toad-data-point


    【解决方案1】:

    您没有指定您使用的数据库。如果是 Oracle,那么 LISTAGG 函数可能会有所帮助:

    SQL> -- This is your current output:
    SQL> with test (case_id, action_name, status_Code) as
      2     (select 1, 'John', 'valid' from dual union all
      3      select 1, 'Peter', 'valid' from dual
      4     )
      5  -- Adjust it using this:
      6  select
      7    case_id,
      8    listagg(action_name, ', ') within group (order by action_name) action_name,
      9    status_code
     10  from test
     11  group by case_id, status_code;
    
       CASE_ID ACTION_NAME                    STATU
    ---------- ------------------------------ -----
             1 John, Peter                    valid
    
    SQL>
    

    否则,看看你的数据库是否提供了这样的聚合功能;我知道他们中的一些人这样做。

    【讨论】:

    • 我在运行它时确实遇到了错误。约翰这个名字出现了两次。有些行将结果显示为 John, john, peter 而不是 John, peter。不知道为什么。
    • 我也不知道。如果您可以准备 CREATE TABLE 和 INSERT INTO 示例数据,我将能够查看它。
    猜你喜欢
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2016-02-06
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多