从其他表搜索值时出现问题

问题描述 投票:0回答:0

我有这个剧本

SELECT DISTINCT C.codeid, C.type, C.fname, C.fwidth, C.flenght, C.fcount, C.fserialaib, C.fserialprod, C.bcharge, C.bweight, C.bdensity, C.bdetachment, C.bpenetration, C.bmvi, C.timestamp, C.zmiana, C.userid, prod.xPrimerID AS skl
FROM dbo.Codes AS C LEFT OUTER JOIN
dbo.V_Products AS prod ON REPLACE(REPLACE(prod.xNazwa, ' ', ''), '-', '') = CASE 
WHEN C.fname IS NOT NULL AND C.skl IS NOT NULL  Then C.fname+CONVERT(VARCHAR, C.fwidth)+'mm'+C.skl
WHEN C.fname IS NOT NULL AND C.skl IS NULL Then C.fname+CONVERT(VARCHAR, C.fwidth)+'mm'
WHEN C.fname IS NOT NULL AND C.skl IS NULL Then C.fname+CONVERT(VARCHAR, C.fwidth)+'mmSKL'
WHEN C.fname IS NULL OR C.fname = '' THEN REPLACE(REPLACE(LEFT(C.bcharge, CHARINDEX(' ', C.bcharge, CHARINDEX(' ', C.bcharge) + 1) - 1) + ' PFB', ' ', ''), '-', '')
END

像这样outer join还是null值时如何继续查找

WHEN C.fname IS NOT NULL AND C.skl IS NULL Then C.fname+CONVERT(VARCHAR, C.fwidth)+'mm' --> when this is null try next command like under, now in this sql script just stop because i got the same sql commands
WHEN C.fname IS NOT NULL AND C.skl IS NULL Then C.fname+CONVERT(VARCHAR, C.fwidth)+'mmSKL'

我尝试从其他表中获取值 id,例如 在基表中,我得到了 C.fname = 'SD' 和 C.fwidth = 195 在表 dbo.V_Products 上,我得到了 xNazwa,其中 = SD195mmSKL 但有时是 SD195mm

sql sql-server left-join case sqlcommand
© www.soinside.com 2019 - 2024. All rights reserved.