我有一个包含 ID 的表,带有一个备用标识符。
ID| Alternate
1 | 100000000
1 | 8471
1 | 1248
2 | 578887518
2 | 8415
2 | 3574
3 | 100000000
3 | 1248
有两种类型的备用标识符.. 9 位和 4 位。每个 ID 都有一个 9 位数字,然后最多有四个不同的 4 位数字。
我的问题是该表不是唯一的。存在类似于上述示例 ID 1 和 3 的情况。可能也存在这种情况,虽然我还没有找到一种情况,其中 9 位标识符匹配,但有不同的 4 位标识符..
ID | Alternate
5 | 200000000
5 | 1234
6 | 200000000
6 | 4567
我的目标是创建一个表,并以备用标识符值为中心,但是我目前正在为同一用户获取两行。
有人知道我将如何解决这个问题吗?
当前代码
SELECT ID, [THCI], [2101] , [2202], [2245]
FROM
(SELECT
T1.[ID],
T1.[IDENTIFIER],
CASE WHEN T2.[MAIN_IDENT] IS NULL THEN 'THCI' ELSE T2.[MAIN_IDENT] END AS PIV
FROM MYTABLE T1
LEFT OUTER JOIN TABLE2 AS T2 ON T2.[REFNO] = T1.[REFNO]
WHERE
(LEN(T2.[MAIN_IDENT]) = 4 OR T2.[MAIN_IDENT] IS NULL)
AND (LEN(T1.[IDENTIFIER]) = 4 OR LEN(T1.[IDENTIFIER]) = 9)
) AS SourceTable
PIVOT (MAX([IDENTIFIER]) FOR PIV IN ([THCI], [2245], [2202], [2101],[2345],[2303])) AS MYPIV
编辑:预期的输出将是。另请注意,它是四个备用标识符,而不是三个。虽然变化不大
[ID] | [THCI] | [2245] | [2202] | [2101] | [2345]
1 | 100000000 | 4817 | 6824 | NULL | 1587
2 | 845279514 | 2359 | 7847 | 1234 | NULL
3 | 415784521 | 2415 | NULL | NULL | 8747