
select * from LP회원 where 회원번호 in ('01') ;
select * from LP회원 where 회원번호 in ('01', '02') ;
select * from LP회원 where 회원번호 in ('01', '03') ;
select * from LP회원 where 회원번호 in ('01', '02', '03') ;
select * from LP회원 where 회원번호 in ('02') ;
select * from LP회원 where 회원번호 in ('02', '03') ;
select * from LP회원 where 회원번호 in ('03') ;
select * from LP회원 where 회원번호 in ( :a, :b, :c ) ;

select * from LP회원
where 회원번호 in
( decode(:a, 'all', '01', :b)
-- :a가 'all'이면 무조건 '01'포함 아니면 그냥 :b의 값 ('01' 또는 NULL)
, decode(:a, 'all', '02', :c)
-- :a가 'all'이면 무조건 '01'포함 아니면 그냥 :c의 값 ('02' 또는 NULL)
, decode(:a, 'all', '03', :d) )
-- :a가 'all'이면 무조건 '01'포함 아니면 그냥 :d의 값 ('03' 또는 NULL)
✅ oracle DECODE 문법
- DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3..........)
- 아래 로직과 같다.
if (컬럼 == 조건1) { return "남자"; } else if (컬럼 == 조건2) { return "여자"; } else { return "기타"; }```

select *
from 수시공시내역
where 공시일자 = :일자
and :inlist like '%' || 분류코드 || '%'
select * from 수시공시내역
where 공시일자 = :일자
and INSTR(:inlist, 분류코드) > 0
select *
from 수시공시내역
where 공시일자 = :일자
and 분류코드 in ( ... )
select *
from 수시공시내역
where 공시일자 = :일자
and INSTR(:inlist, 분류코드) > 0
select /*+ ordered use_nl(B) */ B.*
from ( select 분류코드
from 수시공시분류
where INSTR(:inlist, 분류코드) > 0 ) A , 수시공시내역 B
where B.분류코드 = A.분류코드
AND B.공시일자 = :일자;
👉 :inlist := '01,03,08,14,17,24,33,46,48,53'
select /*+ ordered use_nl(B) */ B.*
from (select substr(:inlist, (level-1)*2+1, 2)
from dual
connect by level <= length(:inlist) / 2) A , 수시공시내역 B
where B.분류코드 = A.분류코드;
select 회원번호, SUM(체결건수), SUM(체결수량), SUM(거래대금)
from 일별거래실적 e
where 거래일자 = :trd_dd and 시장구분 = '유가'
and exists ( select 'x' from 종목 where 종목코드 = e.종목코드 and 코스피종목편입여부 = 'Y' )
group by 회원번호
select 회원번호, SUM(체결건수), SUM(체결수량), SUM(거래대금)
from 일별거래실적 e
where 거래일자 = :trd_dd and 시장구분 = '유가'
and exists ( select 'x'
from 종목 where 종목코드 = e.종목코드
and 코스피종목편입여부 = decode(:check_yn, 'Y', 'Y', 코스피종목편입여부)
)
group by 회원번호
select 회원번호, SUM(체결건수), SUM(체결수량), SUM(거래대금)
from 일별거래실적 e
where 거래일자 = :trd_dd and 시장구분 = '유가'
and exists (
select 'x' from dual where :check_yn = 'N'
union all
select 'x'
from 종목
where 종목코드 = e.종목코드 and 코스피종목편입여부 = 'Y' and :check_yn = 'Y' )
group by 회원번호
/* 1 : 평균 2: 합계 */
if( pfmStrCmpTrim(INPUT->inData.gubun, ""1"", 1) == 0){
snprintf(..., "" avg(계약수), avg(계약금액), avg(미결제약정금액) "");
}
else {
snprintf(..., "" sum(계약수), sum(계약금액), sum(미결제약정금액) "");
}
/* 1 : 평균 2: 합계 */
decode(:gubun, '1', avg(계약수), sum(계약수)),
decode(:gubun, '1', avg(계약금액), sum(계약금액)),
decode(:gubun, '1', avg(미결재약정금액), sum(미결재약정금액)),
where 거래미형성률 between :min1 and :max1
and 일평균거래량 between :min2 and :max2 and 일평균거래대금 between :min3 and :max3
and 호가스프레드비율 between :min4 and :max4 and 가격연속성 between :min5 and :max5
and 시장심도 between :min6 and :max6 and 거래체결률 between :min7 and :max7
| 도메인 | 데이터 타입 |
|---|---|
| 거래량 | NUMBER(9) |
| 거래대금 | NUMBER(15) |
| 가격연속성 | NUMBER(5, 2) |
| 구분 | between 시작값(:min3) | between 종료값(:max3) |
|---|---|---|
| 이하 | 0 | 1000 |
| 미만 | 0 | 999 |
| 이상 | 1000 | 999999999 |
| 초과 | 1001 | 999999999 |
| 구분 | between 시작값(:min5) | between 종료값(:max5) |
|---|---|---|
| 이하 | 0.00 | 50.00 |
| 미만 | 0.00 | 49.99 |
| 이상 | 50.00 | 999.99 |
| 초과 | 50.01 | 999.99 |