gpt4 book ai didi

sql - 如何选择一列不同的内容?

转载 作者:行者123 更新时间:2023-12-02 17:21:32 24 4
gpt4 key购买 nike

我有一个包含以下各列的表,如果 COD 重复,我需要获取值,在 VALUE 列上获取非 NULL。如果不重复,则可以获得 NULL VALUE。就像这个例子:

我正在使用 SQL SERVER。

这就是我得到的:

COD ID  VALUE
28 1 NULL
28 2 Supermarket
29 1 NULL
29 2 School
29 3 NULL
30 1 NULL

这就是我想要的:

COD ID  VALUE
28 2 Supermarket
29 2 School
30 1 NULL

我正在尝试做的事情:

;with A as (    
(select DISTINCT COD,ID,VALUE from CodId where ID = 2)
UNION
(select DISTINCT COD,ID,NULL from CodId where ID != 2)
)select * from A order by COD

最佳答案

你可以试试这个。

DECLARE @T TABLE (COD INT, ID INT,  VALUE VARCHAR(20))
INSERT INTO @T

VALUES(28, 1, NULL),
(28, 2 ,'Supermarket'),
(29, 1 ,NULL),
(29, 2 ,'School'),
(29, 3 ,NULL),
(30, 1 ,NULL)


;WITH CTE AS (
SELECT *, RN= ROW_NUMBER() OVER (PARTITION BY COD ORDER BY VALUE DESC) FROM @T
)
SELECT COD, ID ,VALUE FROM CTE
WHERE RN = 1

结果:

COD         ID          VALUE
----------- ----------- --------------------
28 2 Supermarket
29 2 School
30 1 NULL

关于sql - 如何选择一列不同的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46770901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com