暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何在不显示列名的情况下取消显示表数据

askTom 2018-01-29
214

问题描述

嗨,汤姆,

我正在处理Oracle数据库和以下查询

    select        
    t1.id as dbid,
    t2.mid as askid,
    t3.m2idd as amid from
    table1 t1, table2 t2, table3 t3 where
    t1.actid = t2.senid
    and t2.denid = t2.mkid
    );
复制


中的数据

dbid       askid         amid
================================
d1           m1            a1
复制




但是预期的是

SOURCE_ID    DEST_ID
========================
m1             d1
a1             d1
复制


我浏览了may网站,发现unpivot将执行类似的操作。因此,尝试了unpivot,但这并没有给我们带来预期的结果。

select DEST_ID,SOURCE_ID from 
    (select        
    t1.id as dbid,
    t2.mid as askid,
    t3.m2idd as amid from
    table1 t1, table2 t2, table3 t3 where
    t1.actid = t2.senid
    and t2.denid = t2.mkid
    )
    unpivot INCLUDE NULLS (SOURCE_ME_GUID FOR DEST_ME_GUID IN (amid, askid));
复制


请对此提出建议。

问候,
苏什马

专家解答

与常规查询相同的方式:

在您的select子句中列出您想要的列!

Dbid不在您的unpivot子句中。所以它仍然是你的结果集中的一列。包括并排除生成的dest_id:

select dbid, SOURCE_ID 
from (
  select 'd1' dbid, 'm1' askid, 'a1' amid
  from   dual
) unpivot INCLUDE NULLS (
  SOURCE_ID FOR DEST_ID IN (amid, askid)
);

DBID   SOURCE_ID   
d1     a1          
d1     m1  
复制

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论