2018년 10월 31일 수요일

SQL 조건절에 CASE 문으로 여러 조건 결합하기...

오늘의 난관..

SQL 쿼리에서 기존에 프로시저를

8개 매장별로 조회하게 만들었는데..

오늘 요건이 인터넷 매장은 따로 보고...

전체 매장을 선택하면 인터넷 매장을 제외한 나머지들의 합산만 보고 싶다고 하여..

궁리...

프로시저에 임시테이블을 써서.. 분기문으로 나눌수가 없음..

조건절에서 제어해야 할 거 같아서.. 이리저리 구글링해 보니..

CASE WHEN을 OR로 연결해서 쓸 수 있다는 걸 알게 됨..

5000 이란 코드가 들어오면.. 인터넷 매장 (5040)을 제외한 나머지를 조회 시키고..

해당 매장코드가 들어오면 정상조회를 시키는 쿼리를 결국 완성..


  1. AND
  2.         (
  3.             (
  4.                 CASE WHEN @LOC = '5000' THEN '5010' END = 매장코드컬럼
  5.                 OR
  6.                 CASE WHEN @LOC = '5000' THEN '5020' END = 매장코드컬럼
  7.                 OR
  8.                 CASE WHEN @LOC = '5000' THEN '5030' END = 매장코드컬럼
  9.                 OR
  10.                 CASE WHEN @LOC = '5000' THEN '5060' END = 매장코드컬럼
  11.                 OR
  12.                 CASE WHEN @LOC = '5000' THEN '5070' END = 매장코드컬럼
  13.                 OR
  14.                 CASE WHEN @LOC = '5000' THEN '5080' END = 매장코드컬럼
  15.                 OR
  16.                 CASE WHEN @LOC = '5000' THEN '5090' END = 매장코드컬럼
  17.             )
  18.             OR 매장코드컬럼 LIKE ''+ @LOC + ''
  19.         )

또 쿼리 철인가... 쿼리만.. 죽어라 하게 되네...


======================================

2020-12-02 : 좀 나중에 덧붙임..

이렇게 쓰면.. 쿼리 처리는 쉽겠지만.. 성능은 포기해야 할지도..

지금 다시 짜라고 하면.. @LOC 별로 분기를 만들어서.. 귀찮지만(!!)

각각에 해당하는 쿼리를 짜는 것을 선택할 듯...

댓글 없음:

댓글 쓰기

BE Band (비밴드) - 2024년 03월 02일 잠실새내 락앤롤욱스 공연

나의 10~20대를 보낸 잠실에서의 공연.. 오랜만에 가보니.. 여기가.. 마눌님과 자주 가던 영화관이었는데... 여긴 뭐가 있었는데... 란 추억도 떠올리며 기분좋게 감.​ 공연장은 좀 협소한 편이었고, 인천의 쥐똥나무 보다는 약간 크고... 인천 ...