首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SQL中的一个左属性获取多个属性

从SQL中的一个左属性获取多个属性
EN

Stack Overflow用户
提问于 2013-11-19 09:22:47
回答 2查看 65关注 0票数 3

如果我有这样的桌子

代码语言:javascript
复制
UserName | BoardName
-----------------------
Alice   Research
Ethan   Research
Ethan   Gardening
Ethan   Movies
Jack    Travel
Jack    Movies
Tom         Gardening
Tom         Teaching
Tom         Travel
Tom         Movies
Tom         Study

我可以使用PL/SQL查询获得这样的结果吗?

代码语言:javascript
复制
Alice   Research
Ethan   Research
            Gardening
            Movies
Jack    Travel
            Movies
Tom         Gardening
            Teaching
            Travel
            Movies
            Study

注意到在UserNames之后是如何出现空白单元格的?如果问题不太清楚,很抱歉。

我认为一个由查询组成的组可以工作,但我不确定。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-19 09:40:34

请尝试:

代码语言:javascript
复制
SELECT  
     case when UserName=lag(UserName) OVER (ORDER BY UserName) 
     then null 
     else UserName end UserName,
     UserEmail, 
     BoardName
FROM 
     YourTable;

SQL Fiddle演示

票数 1
EN

Stack Overflow用户

发布于 2013-11-19 09:30:03

代码语言:javascript
复制
SELECT
    UserName,
    BoardName
FROM
    TheTable
GROUP BY 
    UserName,
    BoardName

会让你

代码语言:javascript
复制
John    Cooking
John    Travel
Tom     Cooking
Bill    Sport

因此,诀窍是找出组中的行num并处理它。

也许是这样的?

代码语言:javascript
复制
SELECT
    CASE
       WHEN ROW_NUMBER() OVER (partition by GROUP order by UserName,  BoardName) > 1 THEN ''
       ELSE UserName
    END AS UserName,   
    BoardName
FROM
    TheTable
GROUP BY 
    CASE
       WHEN ROW_NUMBER() OVER (partition by GROUP order by UserName,  BoardName) > 1 THEN ''
       ELSE UserName
    END,   
    BoardName

我没有神谕所以不能测试它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20067598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档