티스토리 뷰
말이 조금 어려운데,
SQL구문에서
- where조건에 대해서 결과값이 없으면 where조건절을 skip하여 테이블 전체조회하고,
- where조건에 대해서 결과가 있으면 where조건절을 걸어서 테이블 조건조회하는 로직이 필요했다.
도식화를 하자면 아래처럼 하고 싶다는것!
🧡 왜 필요한가?
- redash에서 시각화하는 것때문인데
- 실무자 요청사항이 기본적으로 전체내역이 보이고, 만약에 입력값(id)을 입력하면 해당 입력값에 해당하는 내역만 보고 싶다는 것이었다.
> Thus,
만약에 입력값을 10을 입력하면 select * from table where id = '10' 이 적용되어야 하고,
만약에 입력값을 입력하지 않으면 select * from table 이 적용이 되어야 하는 상황.
🧡 방법
다양한 서칭과 시도를 해보았다. 이런 게 처음이라 그런지 해당 문제로 3시간은 쓴 듯....
- PL/SQL로 if 구문으로 하는 방법
- UNION ALL 사용하는 방법 SELECT 'ALL' UNION ALL SELECT *
- INTERSECT 사용
- WHERE절에 LIKE와 DECODE 사용하는 방법 (이 방법도 될 거 같은데, redash에서 DECODE지원이 안된다!! 🤯)
혹시 모르니 내가 참고했던 링크 ( https://limkydev.tistory.com/159 )
- 내가 최종 사용한 로직
>> 입력값(입력값1,입력값2)이 없거나
혹은 입력값이 있는데 그게 특정값인 것
WHERE (
( :입력값1 IS NULL and :입력값2 IS NULL )
OR
(
:입력값1 IS NOT NULL AND (
ID = :입력값1
or ID = :입력값2
or ID= :입력값3
)
)
)
🧡 참고 (감사드립니다!! 🙏🙏🙏 )
http://www.gurubee.net/article/59846
파라미터가 null일때 where 조건 안타게 하는 방법
약간 설명이 복잡한데요파라미터로 name='test'은 넘어옵니다.하지만 만약 파라미터가 null이라면 where 조건 자체를 안타게 하고싶은데 방법이 있나..
www.gurubee.net
like 개발자가 된 기분으로... 서칭에 서칭을 거듭하다가
위 링크에서 나는 '미농'님의 idea로 해결했다!
Q.(질문)
A.(답변)
'Data > SQL' 카테고리의 다른 글
[SQL/redash] SAS에서 SQL사용 시 함수/문법 (PROC SQL) (0) | 2022.04.22 |
---|---|
[SQL,oracle] 문자열 자르기 split 기능 (substr, instr 함수 이용) (0) | 2021.02.25 |
- Total
- Today
- Yesterday
- redash #
- redash시각화
- 오라클
- 리대시
- 구글애널리틱스_추적코드
- GA
- SQL
- oracle
- 구글애널리틱스
- redash
- instr함수
- 구글애널리틱스_추적코드심기
- redash대시보드
- substr함수
- 오라클함수
- 리대시대시보드
- GoogleAnalytics
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |