在AND条件Oracle SQL查询中找不到记录

时间:2019-04-11 04:58:17

标签: oracle oracle11g oracle10g

我有一个查询,其中我选择了具有AND条件的表上具有数据验证功能的记录,但是只有1个条件没有记录,因此它返回0行。如何避免这种情况。

查询:

SELECT a.clientid, a.cnic_no, a.nrsp_status, b.projectid
FROM we_group_hof_k a, hof b
WHERE a.clientid IS NOT NULL
AND a.nrsp_status = 2
AND LENGTH(a.cnic_no) <=13
AND b.urn like '006%'

我发现上一个b.urn条件没有006%。因此此查询返回0行。我想要这种情况下没有记录,然后显示其他记录

更新的查询:

INSERT INTO we_group_hof
(clientid, projectid, cnic_no, gendid, rid, mstatusid, village_id, ucid, cityid, disttid, nrsp_hofid, group_hof_id, nrsp_status, isenrolled
, cardstatus, dob, cardno)

SELECT a.clientid, a.cnic_no, a.gendid, a.rid, a.mstatusid, a.village_id, a.ucid, a.cityid, a.nrsp_hofid,
a.group_hof_id, a.nrsp_status, a.isenrolled, a.cardstatus, a.dob, LPAD(b.projectid,3,0), LPAD(b.disttid,3,0),to_char(max(b.cardno)+1)

FROM we_group_hof_k a, hof b
WHERE ((a.clientid IS NOT NULL
AND a.nrsp_status = 2
AND LENGTH(a.cnic_no) <=13
AND a.isenrolled = 'Y'
AND a.cardstatus = 'A'
AND a.dob <= sysdate
AND a.dob IS NOT NULL)
OR b.urn like '006%')
GROUP BY a.clientid, b.projectid, a.cnic_no, a.gendid, a.rid, 
a.mstatusid, a.village_id, a.ucid, a.cityid, b.disttid, a.nrsp_hofid, 
a.group_hof_id, a.nrsp_status, a.isenrolled, a.cardstatus, a.dob;

我尝试使用此查询,但是此查询未执行且查询执行未执行

1 个答案:

答案 0 :(得分:1)

尚不清楚这是否正是您想要的,但是带有适当括号的OR条件可能会帮助您有选择地筛选所需的记录。

..
WHERE 
(     a.clientid IS NOT NULL
      AND a.nrsp_status = 2
   AND LENGTH(a.cnic_no) <=13
) 
OR b.urn like '006%'