对于模糊的描述感到抱歉,但我不知道该怎么说。
以下是SELECT语句的示例结果:
Number Type Name
67 NULL George
67 Boy Kevin
我想要的是什么:
Number Type Name
67 Boy George
换句话说,如果Type为null,我想选择Name,但从另一行中选择Type。
希望这是有道理的。
编辑:我在评论中被要求提供更多信息。上面的结果是来自更大和更复杂查询的结果的简化版本。这是要匹配的查询的简化版本。另外,我不是要求代码。如果我能得到指向解决方案的指针,我可以自己弄清楚代码。我只是不确定我在寻找哪些关键字。感谢。SELECT DISTINCT Number, [Type], Name
FROM MyTable
WHERE Number = 67
GROUP BY Number, [Type], Name
答案 0 :(得分:1)
如果每个Number只有一个可能的非null Type值,则可以执行
SELECT
Number,
ISNULL( Type,
(SELECT TOP 1 Type FROM Table T1 WHERE T1.Number = T.Number) ) as Type,
Name
FROM
Table T
答案 1 :(得分:1)
如果你不关心返回了哪个记录,如果有多个非NULL,你可以使用GROUP BY
:
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