如何正确加入和查询以实现比较

时间:2013-04-19 15:54:58

标签: sql sql-server join case

我有2个表(OITM和artfileStatus)。我想在OITM.ItemCode = artfileStatus.artfilename + ‘.pdf’

加入他们

我想查询OITM表以返回该表中所有OITM.ItemCodes的列表。作为附加列,我想找出OITM.ItemCodes

中不存在artfileStatus.artfilename + ‘.pdf’的内容

如果(artfileStatus.artfilename + ‘.pdf’ )不存在,我想返回“无艺术品”字样。如果(artfileStatus.artfilename + ‘.pdf’ )确实存在,我想返回(artfileStatus.filelocation)的值。

我不确定要使用正确的连接和/或查询它的正确方法。我确定CASE参与了select语句,但我发现当artfileStatus.artfilename + ‘.pdf’不存在时,我的查询尝试根本没有返回任何结果。

您能帮我指出正确的方向,还是根据这些信息提供样本解决方案?非常感谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT ItemCode,
       CASE WHEN artfilename IS NULL
       THEN 'NoArtwork'
       ELSE fileLocation
       END
FROM OITM
LEFT OUTER JOIN  artfileStatus ON OITM.ItemCode = SUBSTRING(artfileStatus.artfilename , 1, 6)