創建和填充POC表的序列:返回第一匹配ID的條件
CREATE TABLE #POCSTBL (SCode varchar(10))
INSERT INTO #POCSTBL (SCode)
SElECT 'LC13'
UNION ALL
SELECT 'LC22'
UNION ALL
SELECT 'LC31'
CREATE TABLE #POCLUTBL (ID int Identity (1,1), LC1 varchar(10), LC2 varchar(10), LC3 varchar(10))
INSERT INTO #POCLUTBL (LC1, LC2, LC3)
SELECT 'LC11',NULL,'LC13'
UNION ALL
SELECT 'LC21','LC13',NULL
UNION ALL
SELECT '-','LC31','LC33'
SELECT * FROM #POCSTBL
SELECT * FROM #POCLUTBL
我的初步嘗試:
SELECT S.SCode, LU.ID FROM #POCSTBL S LEFT JOIN #POCLUTBL LU
ON S.SCode = LU.LC1 OR S.SCode = LU.LC2 OR S.SCode = LU.LC3
掉落#Tbls:
DROP TABLE #POCSTBL
DROP TABLE #POCLUTBL
所需的輸出:
SCode ID
LC13 2
LC22 NULL
LC33 3
我想先查找從#POCSTBL SCODE列反對#POCLUTBL的 LC2,一旦發現,採取ID作爲輸出, 如果沒有找到,那麼LC1,一旦發現,採取ID作爲輸出ID, 如果沒有找到ID,然後LC3,如果發現,採取ID作爲輸出, 如果沒有找到ID,然後在ID = NULL
謝謝
#POCSTBL = POC源表 #POCLUTBLE = POC查找表 SCODE =源碼 LC(1/2/3)=查找列(1/2/3)......哦,這是我順便說一句誰想出了與這些名字。 :P – 007
TIL:我需要變得更簡單,更少怪異。 Thx Aaron;) – 007