특정 역할을 가진 사용자를 폴링하는 전자 상거래 쿼리를 작성하고 있습니다. 쿼리의 정확한 목적은 중요하지 않습니다. 중요한 것은 쿼리가 현재 의도 된대로 작동한다는 것입니다. 다음 사이의 유일한 차이점은 rd.displayname이 어디 그러나, 나는 정말 당신이 볼 수 있듯이, 나는 부모 쿼리의 절에서 거의 동일 하위 쿼리가 쿼리이 두 하위 쿼리는 어떻게 통합합니까?
.
.
.
where u.firstname is not null
and u.users_id in (
select u.users_id from users u
inner join mbrrole mr on mr.member_id = u.users_id and mr.ORGENTITY_ID IN (
select ORGENTITY_ID from po_org_tree_v
)
inner join roledesc rd on rd.role_id = mr.role_id
where 1=1
and rd.displayname IN ('Customer Service Representative', 'Account Representative')
)
and u.users_id in (
select u.users_id from users u
inner join mbrrole mr on mr.member_id = u.users_id and mr.ORGENTITY_ID IN (
select ORGENTITY_ID from po_org_tree_v
)
inner join roledesc rd on rd.role_id = mr.role_id
where 1=1
and rd.displayname = 'Registered Customer'
);
의이 부분을 정리하고 싶습니다 검사. SQL에서 "함수"로 쿼리를 비슷하게 만드는 몇 가지 방법이 있습니까? 프로그래밍 언어의 실제 함수와 비슷합니까? 이 하위 쿼리를 결합하여 기본 쿼리를 정리하는 방법은 무엇입니까?
'이미 –
을 그를 정리 할 수 있도록 1 = 1 '은'1 = 1'부분은 쓸모가 WHERE 함수가 레코드를 반환 할 수 없기 때문에 당신이 기능을 사용할 수 없습니다 .. –