我需要从表中检索3列:
OrderNumber, ParentOrderNumber, ClientName
ParentOrderNumber
将始终为ClientName
,但有些OrderNumber
将不会有ClientName
。
在这种情况下,我需要从ClientName
获取ParentOrderNumber
。
你能帮我解决SQL查询吗?
附件是数据场景的图片。
此处没有可用于ETA-454-5687的客户端名称,因此我需要使用表中的parentOrderNumber
(TOR-096-2000
)来获取它。
答案 0 :(得分:1)
使用正确加入:
DECLARE @tbl1 as TABLE(
OrderNumber VARCHAR(50),
ParentOrderNumber VARCHAR(50),
ClientName VARCHAR(50)
)
INSERT INTO @tbl1 VALUES('ETA-454-5687','TOR-096-2000','')
INSERT INTO @tbl1 VALUES('TOR-096-2442_XCODE',NULL,'')
INSERT INTO @tbl1 VALUES('TOR-096-2000',NULL,'ABCDEF')
SELECT
T2.OrderNumber,
T2.ParentOrderNumber,
CASE ISNULL(T1.ClientName,'')
WHEN '' THEN T2.ClientName
ELSE T1.ClientName
END AS ClientName
FROM @tbl1 T1
RIGHT JOIN @tbl1 T2 ON T1.OrderNumber=T2.ParentOrderNumber
<强>输出:强>