Sql server 如何根据条件合并select语句中的行

Sql server 如何根据条件合并select语句中的行,sql-server,Sql Server,对不起,描述得很模糊,但我不知道该怎么说 以下是SELECT语句的示例结果: Number Type Name 67 NULL George 67 Boy Kevin 我想要的是: Number Type Name 67 Boy George 换句话说,如果Type为null,我想选择名称,但从另一行选择类型 希望这是有道理的 编辑:有人在评论中要求我提供更多信息。

对不起,描述得很模糊,但我不知道该怎么说

以下是SELECT语句的示例结果:

Number      Type      Name
67          NULL      George
67          Boy       Kevin
我想要的是:

Number      Type      Name
67          Boy       George
换句话说,如果Type为null,我想选择名称,但从另一行选择类型

希望这是有道理的

编辑:有人在评论中要求我提供更多信息。上面的结果是一个更大、更复杂的查询结果的简化版本。下面是要匹配的该查询的简化版本。而且,我不是要代码。如果我能找到一个指向解决方案的指针,我就能自己找出代码。我只是不确定我要找的关键词是什么。谢谢

SELECT DISTINCT Number, [Type], Name
FROM         MyTable 
WHERE     Number = 67
GROUP BY Number, [Type], Name

如果每个数字只有一个可能的非null类型值,则只需执行以下操作

SELECT 
    Number,
    ISNULL( Type, 
       (SELECT TOP 1 Type FROM Table T1 WHERE T1.Number = T.Number) ) as Type,
    Name
FROM 
    Table T
如果您不关心返回的是哪条记录,如果有多条非空记录,则可以使用
分组依据

DECLARE @Tbl TABLE (ID INT, A VARCHAR(10), B VARCHAR(10))
INSERT INTO @Tbl (ID, A, B) VALUES
    (1, 'Alice', NULL),
    (1, NULL, 'Smith')

SELECT
    ID, MIN(A), MIN(B)
FROM
    @Tbl
GROUP BY
    ID
输出:

1  Alice  Smith

询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试过的解决方案,以及它们不起作用的原因。感谢您的反馈。我想问尽可能好的问题。上面的结果通过我编写的更复杂的SELECT语句进行了简化。我将尽快提供该语句的简化版本。所以数字字段是两行之间的连接,表示这是我想要的类型值?每个数字可以有多个类型值吗?如果是,你如何选择哪一个?等