FROM
Table1 L
LEFT JOIN
Table2 M ON L.id = M.id
AND ISNULL([Col1], '') NOT IN ('', '#N/A', 'NULL')
我如何在T-SQL中编写这个逻辑,在那里我想排除null、NA以及字符串null?
两种可能性是使用where
子句(该子句也由本主题的标题指示(,或者删除left
联接。
SELECT ...
FROM Table1 L
JOIN Table2 M ON L.id = M.id
AND ISNULL([Col1],'') NOT IN ('','#N/A','NULL')
SELECT ...
FROM Table1 L
JOIN Table2 M ON L.id = M.id
WHERE ISNULL([Col1],'') NOT IN ('','#N/A','NULL')
SELECT *
FROM Table1 L
LEFT JOIN Table2 M
ON L.id = M.id
AND
M.id IS NOT NULL
AND
NOT(L.[Col1] IN ('#N/A', 'NULL'))
SELECT *
FROM (SELECT * FROM Table1 WHERE NOT(Table1.[Col1] IN ('#N/A', 'NULL'))) L
LEFT JOIN Table2 M
ON L.id = M.id
AND
M.id IS NOT NULL