表数据:
我有这个sql脚本:
SELECT
ei.objid
FROM entityindividual ei
INNER JOIN entity e
ON ei.objid = e.objid
LEFT JOIN entity_address ea
ON ei.objid = ea.parentid
WHERE ei.gender = 'M'
AND ISNULL(ea.barangay_name) LIKE '%'
如果您运行此脚本,则会显示 6条记录,但如果不使用ISNULL(ea.barangay_name)
,则只会显示 1条记录。
但请考虑这种情况:
SELECT
ei.objid
FROM entityindividual ei
INNER JOIN entity e
ON ei.objid = e.objid
LEFT JOIN entity_address ea
ON ei.objid = ea.parentid
WHERE ei.gender = 'M'
AND ISNULL(ea.barangay_name) LIKE '%BUENAVISTA%'
运行上述脚本时,问题 无记录会显示。的为什么?如何解决这个问题?
答案 0 :(得分:2)
尝试使用coalesce
代替isnull
。
http://www.w3resource.com/mysql/comparision-functions-and-operators/coalesce-function.php
SELECT
ei.objid
FROM entityindividual ei
INNER JOIN entity e
ON ei.objid = e.objid
LEFT JOIN entity_address ea
ON ei.objid = ea.parentid
WHERE ei.gender = 'M'
AND coalesce(ea.barangay_name,'') LIKE '%BUENAVISTA%'