[英]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.