带左连接的SQL连接
当执行下面的sql查询时,并没有按预期输出。请纠正我带左连接的SQL连接,sql,Sql,当执行下面的sql查询时,并没有按预期输出。请纠正我 SELECT COALESCE(NULLIF(b1.ShortCode,NULL)+'|'+ NULLIF(b2.ShortCode,NULL)+'|'+ NULLIF(b3.ShortCode,NULL)+'|'+ NULLIF(b4.ShortCode,NULL),NULLIF(b5.ShortCode,NULL))as Result FROM tbl_PropertyDetails
SELECT
COALESCE(NULLIF(b1.ShortCode,NULL)+'|'+ NULLIF(b2.ShortCode,NULL)+'|'+
NULLIF(b3.ShortCode,NULL)+'|'+
NULLIF(b4.ShortCode,NULL),NULLIF(b5.ShortCode,NULL))as Result
FROM tbl_PropertyDetails
LEFT JOIN tbl_FamilyMember b1 ON tbl_PropertyDetails.Member1ID = b1.FMID
LEFT JOIN tbl_FamilyMember b2 ON tbl_PropertyDetails.Member2ID = b2.FMID
LEFT JOIN tbl_FamilyMember b3 ON tbl_PropertyDetails.Member3ID = b3.FMID
LEFT JOIN tbl_FamilyMember b4 ON tbl_PropertyDetails.Member4ID = b4.FMID
LEFT JOIN tbl_FamilyMember b5 ON tbl_PropertyDetails.Member5ID = b5.FMID
[enter image description here][1]
试试这个:
SELECT COALESCE(b1.ShortCode, '') + '|' + COALESCE(b2.ShortCode, '') + '|'
+ COALESCE(b3.ShortCode, '') + '|' + COALESCE(b4.ShortCode, '') ,
COALESCE(b5.ShortCode, '') AS Result
FROM tbl_PropertyDetails
LEFT JOIN tbl_FamilyMember b1 ON tbl_PropertyDetails.Member1ID = b1.FMID
LEFT JOIN tbl_FamilyMember b2 ON tbl_PropertyDetails.Member2ID = b2.FMID
LEFT JOIN tbl_FamilyMember b3 ON tbl_PropertyDetails.Member3ID = b3.FMID
LEFT JOIN tbl_FamilyMember b4 ON tbl_PropertyDetails.Member4ID = b4.FMID
LEFT JOIN tbl_FamilyMember b5 ON tbl_PropertyDetails.Member5ID = b5.FMID
您可能需要相当于
CONCAT\u WS()
。将|
仅放在实际值之间。如果是:
SELECT STUFF( COALESCE('|' + b1.ShortCode, '') +
COALESCE('|' + b2.ShortCode, '') +
COALESCE('|' + b3.ShortCode, '') +
COALESCE('|' + b4.ShortCode, '') +
COALESCE('|' + b5.ShortCode, ''),
1, 1, '') as Result
FROM tbl_PropertyDetails LEFT JOIN
tbl_FamilyMember b1
ON tbl_PropertyDetails.Member1ID = b1.FMID LEFT JOIN
tbl_FamilyMember b2
ON tbl_PropertyDetails.Member2ID = b2.FMID LEFT JOIN
tbl_FamilyMember b3
ON tbl_PropertyDetails.Member3ID = b3.FMID LEFT JOIN
tbl_FamilyMember b4
ON tbl_PropertyDetails.Member4ID = b4.FMID LEFT JOIN
tbl_FamilyMember b5
ON tbl_PropertyDetails.Member5ID = b5.FMID;
你得到了什么样的输出?你希望它是什么样的输出?否则我们无法解决这个问题。请告诉我们实际结果是什么,您想要什么结果,以及表描述。至少您需要描述预期的输出,以及它与您得到的结果有何不同。string concat null=>null。
NULLIF(x,null)
是冗余的-只有当x
为NULL
时,它才会返回NULL
-因此,只要使用NULL(x,NULL)
即可