SQL数据库查询为一个值选择不同的对应值

时间:2022-11-29 15:43:25

How can I get the output like this from the table? If I have a table for example shown below

如何从表中获得这样的输出?如果我有一个表格,例如如下所示

First Name         Last Name
----------    

 1. John            Doe
 2. John           Ruggles
 3. Ricky          Rog
 4. kelly          Ali
 5. Ricky           Gyri

I want to show this as below

我想将此显示如下

First Name       Last Name

 1.John           Doe
                  Ruggles

 2. Kelly         Ali

 3. Ricky         Rog
                  Gyri

Like for each name I want to display last name. I want First Name will appear only one time. Please help me. Its a tabular data, first name and last name are different columns

就像每个名字一样,我想显示姓氏。我希望First Name只出现一次。请帮我。它的表格数据,名字和姓氏是不同的列

1 个解决方案

#1


You can use the row_number() analytic function to determine if the last name has changed:

您可以使用row_number()分析函数来确定姓氏是否已更改:

select  case
        when row_number() over (partition by FirstName 
                                order by FirstName, LastName) = 1 
            then FirstName
        else ''
        end as FirstName
,       LastName
from    YourTable
order by
        YourTable.FirstName
,       LastName

Example at SQL Fiddle.

SQL Fiddle的例子。

#1


You can use the row_number() analytic function to determine if the last name has changed:

您可以使用row_number()分析函数来确定姓氏是否已更改:

select  case
        when row_number() over (partition by FirstName 
                                order by FirstName, LastName) = 1 
            then FirstName
        else ''
        end as FirstName
,       LastName
from    YourTable
order by
        YourTable.FirstName
,       LastName

Example at SQL Fiddle.

SQL Fiddle的例子。