SELECT *
FROM (
SELECT 'Z' YEAR FROM DUAL
UNION ALL
SELECT 'A' YEAR FROM DUAL
)
WHERE YEAR BETWEEN 'Z' AND 'A'
;
년도 Z : 2016년 / A : 2017년
2016년 코드를 Z로 써서 2017년 코드 생성시 A로 생성하려 했으나...
결과가 제대로 나오질 않습니다.
기존 쿼리 대부분이 BETWEEN 구문을 사용하고 있는데 ....
상품코드에 사용되는거라 ... 한자리 문자중 Z보다 큰 문자는 없을까요?
수천개의 쿼리를 모두 뒤져서 문자를 숫자로 변경해서 사용해야 하는건지...ㅠㅠ
고수님들의 도움을 부탁드립니다.
1. 연도라고 한다면?
- 코드를 사용할 이유가 없습니다.
- 숫자 4자리 그대로 사용하시는게 맞구요.
2. 상품이라고 한다면?
- 1자리 코드로는 부족할텐데요?
- 또한 연도와 달리 상품코드를 Between 조건으로 사용할 이유도 없을 거구요.
3. 굳이 1자리 코드를 고집한다면?
- 소문자(a ~ z)를 사용하면 되긴 합니다.
다음 쿼리 참고하세요.
기본적으로 사용되는 문자들의 아스키 코드값에 따른 순서를 보여줍니다.
SELECT LEVEL + 31 n , CHR(LEVEL + 31) x FROM dual CONNECT BY LEVEL <= 95 ;