我有一個很大的查詢,它必須顯示多個labels
。查找表中的多個標籤
DECLARE @Example TABLE
(
[ID] INT IDENTITY(1,1)
,[CountryID] INT
,[Choise_1_id] INT
,[Choise_2_id] INT
,[Choise_3_id] INT
,[Choise_4_id] INT
,[Choise_5_id] INT
);
INSERT INTO @Example ([CountryID], [Choise_1_id], [Choise_2_id], [Choise_3_id], [Choise_4_id], [Choise_5_id])
VALUES (101, 1, 2, 3, 4, 5)
,(102, 2, 3, NULL, NULL, NULL)
,(103, 5, 2, 4, NULL, NULL)
,(104, 3, 2, 4, 1, 5);
DECLARE @LableLookup TABLE
(
[Label_ID] INT IDENTITY(1,1)
,[Value] VARCHAR(50)
);
INSERT INTO @LableLookup ([Value])
VALUES ('Test 1')
,('Test 2')
,('Test 3')
,('Test 4')
,('Test 5');
我必須表現出每一個標籤,所以查詢的樣子:
SELECT l1.Value,l2.Value,l3.Value,l4.Value,l5.Value
FROM @Example E
LEFT JOIN @LableLookup l1 ON l1.Label_ID = E.CountryId
LEFT JOIN @LableLookup l2 ON l2.Label_ID = E.Choise_1_id
LEFT JOIN @LableLookup l3 ON l3.Label_ID = E.Choise_2_id
LEFT JOIN @LableLookup l4 ON l4.Label_ID = E.Choise_3_id
LEFT JOIN @LableLookup l5 ON l5.Label_ID = E.Choise_4_id
...
有沒有更好的方式來做到這一點? 我不想掃描每個列的LabelLookup
表。 表中可能有幾十個Choise_ids
。
對不起,輸入我的查詢。請再看一次。 – PeterRing
@PeterRing。 。 。同樣的想法仍然有效。 –
我不這麼認爲。這個國家和Choise沒有任何聯繫,這只是一個不好的例子。 – PeterRing