사용자가 4 가지 유형의 값을 선택하고 UI에 관련 데이터가 표시되는 백 엔드에 하이브 데브가있는 웹 응용 프로그램이 있습니다. 여러 개의 하이브 쿼리 where AND 절 AND 연결 논리적 연결
예 필드가있을 수 있습니다 : 이- 프로젝트 ID는
- 하위 포트폴리오는
- 이 프로젝트의 상태
- 프로젝트 파이낸스 상태
사용자가 언급 한 필드에 다른 값을 선택할 수 있습니다 (단일 또는 다중) 및 데이터 요청.
하나의 하이브 쿼리에 여러 개의 IN 절이 있고 AND 논리 연산자와 결합되어 데이터를 생성합니다.
사용자가 각 입력란에 적어도 하나의 값을 선택할 때까지는 모든 것이 좋습니다. 그러나 사용자가 3 개의 필드에 대한 필터를 선택하고 공백으로 남겨두면 ''은 조건과 데이터가 표시되지 않는 IN 절로 전달됩니다. 조건과 일치하는 행이 없기 때문입니다.
필드가 선택되지 않은 것처럼 해당 필드의 모든 데이터를 가져 오거나 해당 필드의 IN 절을 제거하려면 IN 절에 무언가를 전달해야합니다.
쿼리를 만들기 전에 값을 선택하면 매번 확인해야하는 경우가 많습니다.
어디에서나 IN이 여러 개인 단일 쿼리를 제안하고 일부 매개 변수를 전달하여 값이 선택되지 않은 필드의 모든 행을 가져올 수있는 경우.
참고 : 하이브 JDBC 쿼리를 사용하고 있습니다. 당신이 값을 전달하는 방법에 따라 = ''
수 있습니다 물론 in null
의
where ($subporfolio is null or subportfolio = $subportfolio) and
($status is null or status = $status) and
. . .
:
그 자체로 질문은 너무 광범위합니다. 일부 샘플 데이터와 예상 결과 및 시도를 표시하려고합니다. –