我创建了一个表,tblNewParts
3列:SQL服务器:选择......从FULL JOIN具有默认值的列
NewCustPart
AddedDate
Handled
,我想FULL JOIN
它现有的表, tblPartsWorkedOn
。 tblNewParts
被定义为已经办理默认为'N'
...
SELECT *
FROM dbo.tblPartsWorkedOn AS BASE
FULL JOIN dbo.tblNewParts AS ADDON ON BASE.[CustPN] = ADDON.[NewCustPart]
WHERE ADDON.[Handled] IS NULL
ORDER BY [CustPN] DESC
而且我要现场[Handled]
回来为'N'
而不是NULL
当我运行查询。问题是,当没有在新表中的任何记录,我得到NULL
的,而不是'N'
秒。
我看到一个SELECT CASE WHEN col1 IS NULL THEN defaultval ELSE col1 END
从here一个主要适用答案。我想知道这是否会在这种情况下工作,以及如何在SQL Server 2012的T-SQL中编写该代码?我需要两张表的所有列,而不仅仅是一列。
我做这一个问题,而不是引用链路上的评论,以便不掩盖原始链接的问题。
谢谢你的帮助!
什么阻止您尝试此解决方案? –
@IvanStarostin仍然是SQL的新手,并且因为它不是一门完整的编程语言而碰壁,我寻求帮助,然后去尝试一些东西。我发布了我的“答案”,因为它现在适用于我,我希望它能够保持像我一样思考的其他人,而不是典型的SQL程序员。 :D – Michieal
随着'ISNULL'和'COALESCE'函数用法的演示,可以张贴更多的答案。 –