簡體   English   中英

具有相同ID和兩個不同值的兩行,將第二個值放入另一列

[英]Two rows with the same id and two different values, getting the second value into another column

我有兩個具有相同ID但值不同的行。 我希望查詢獲取第二個值並將其顯示在第一行中。

每個productId只有兩行和2個不同的值。 我嘗試過在各處尋找解決方案。

我所擁有的,例如:

+-----+-------+
| ID  | Value |
+-----+-------+
| 123 |     1 |
| 123 |     2 |
+-----+-------+

我想要的是

+------+-------+---------+
|  ID  | Value | Value 1 |
+------+-------+---------+
| 123  |     1 |       2 |
+------+-------+---------+

這是一個自聯接:

SELECT a.ID, a.Value, b.Value
FROM table a
JOIN table b on a.ID = b.ID
            and a.Value <> b.Value

如果存在ID僅具有一個值並且被上述JOIN丟失的ID ,則可以改用LEFT JOIN JOIN

也許你可以試試這個

DECLARE @T TABLE
(
    Id INT,
    Val INT
)

INSERT  INTO @T
VALUES(123,1),(123,2),
(456,1),(789,1),(789,2)

;WITH CTE
AS
(
    SELECT
        RN = ROW_NUMBER() OVER(PARTITION BY Id ORDER BY Val),
        *
        FROM @T
)
SELECT
    *
    FROM CTE
    PIVOT
    (
        MAX(Val)
        FOR
        RN IN
        (
            [1],[2]--Add More Numbers here if there are more values
        )
    )Q

不確定訂單對您是否重要。 這是一種方法:

SELECT MIN(Value), MAX(Value), ID
FROM Table
GROUP BY ID;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM