쉼표로 구분 된 값이 50 개 미만인 열이 있습니다. 그리고 해당 특정 열에서 쉼표로 구분 된 값의 수가 일정하지 않습니다.이 테이블을 IN / AND / OR 절을 사용하여 쉼표로 구분 된 값으로 쿼리하고 싶습니다.
그래서 다음과 같이하고 싶습니다.
- 선택 쿼리에서 이러한 값을 별도의 열로 분할
- AND, OR 및 IN을 사용하여 개인의 시장 코드를 쿼리합니다.
- EUP 및 APCAC
- APAC 또는 EU 또는 CA
- IN (APAC, EU, LATIM)
이 쿼리를 스프링 데이터 jpa 네이티브 쿼리에서 사용해야합니다.
많은 substr을 사용하고 싶지 않습니다.
다음 답변 -ans1 및 ans2를 참조 한 후 connect by with level을 사용하여 이것을 수행하는 것이 유용 할 것이라고 생각 했습니다.
사용자 테이블 :
사용자 이름 | market_code | 사용 |
---|---|---|
남자 | eup, apac, 라팀 | 0 |
세바스찬 | apac, 라팀 | 0 |
자비에르 | ca, apac, Latim | 0 |
그러나 다음은 3 개의 행이있을 것으로 예상되는 행 하나만 반환합니다.
select regexp_substr(market_code,'[^|]+', 1, level) from testautomadm.userpool
where AND USERNAME = 'john'
connect by regexp_substr('market_code', '[^|]+', 1, level)
is not null
이 사용 사례를 해결하는 데 도움을 주시면 감사하겠습니다.
감사합니다!