我有一个查询,其中我选择了具有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;
我尝试使用此查询,但是此查询未执行且查询执行未执行
答案 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%'