我有我的查询以下行:合并2行1 SQL Server中
我想这些行合并,将呈现如下一行:
请注意,我的表中包含更多像这样的行,所以动态解决方案将不胜感激。另外,有几行在Number 1或Number 2列中都有NULL值。
谢谢...
我有我的查询以下行:合并2行1 SQL Server中
我想这些行合并,将呈现如下一行:
请注意,我的表中包含更多像这样的行,所以动态解决方案将不胜感激。另外,有几行在Number 1或Number 2列中都有NULL值。
谢谢...
一种方法是使用聚合函数:
select category, category_2,
max(number_1) as number_1, max(number_2) as number_2
from t
group by category, category_2;
您可能还可以解决潜在的查询,所以它不会返回多行。如果有兴趣,请询问另一个问题,并在问题中进行查询。
根据什么是关键(假设Category
),你可以做分组:
select Category, max(Category2) as Category2, max(number1) as number1, max(number2) as number2
from table
group by Category
如果Category
和Category2
在一起形成的关键,你可以写:
select Category, Category2, max(number1) as number1, max(number2) as number2
from table
group by Category, Category2
谢谢史蒂芬,你的答案都做到了这一招...... – user2007221
这应该工作。这将有助于解决该查询的存在将多行
DECLARE @MERGE TABLE (Category VARCHAR(10), Category_2 VARCHAR(10),
Number_1 INT, Number_2 INT)
INSERT INTO @MERGE VALUES
('A', 'B', NULL,1),
('A', 'B', 5,NULL)
SELECT
A.Category
,A.Category_2
,MAX(A.Number_1) AS Number_1
,MAX(B.Number_2) AS Number_2
FROM @MERGE A INNER JOIN @MERGE B
ON A.Category=B.Category
WHERE B.Number_2 IS NOT NULL
AND B.Number_2 IS NOT NULL
GROUP BY A.Category ,A.Category_2
输出
Category Category_2 Number_1 Number_2
A B 5 1
感谢戈登,我不能修复基础查询,因为这是我从客户端查询得到的信息。 – user2007221