Q&A

  • Max + 1값을 구하기
안녕하세요

다름이 아니라 데이타 입력시 코드는 자동증가 시켜서 SETTING하려고 합니다.

(0001

0002

0003



)

이런식으로 시퀀스를 부여할려구 하는데 문제는 중간에 이런식으로

'000A'라는 식의 문자가 있는 데이타가 존재합니다.

그래서 WHERE절에서 숫자만으로만 구성되어진 자료들을 걸러내고 다음과

같이 MAX값을 가져오면 될것 같은데...



SELECT MAX(CODE)

FROM AA_TABLE_NAME

WHERE ????;



도대체 WHERE절에 'CODE'값이 숫자인것만 걸러내는 방법이 없을까요?

고수님들의 선처 부탁드립니다.^^

2  COMMENTS
  • Profile
    우비소녀 2001.10.11 22:36
    혹시 이렇게 하면 되지 않을까요?

    오라클이라면...



    SELECT MAX(TO_NUMBER(SUBSTR(필드명, -2, 1))) FROM 테이블명

    WHERE SUBSTR(필드명, -2, 1) IN ('1','2','3','4', '5','6','7', '8', '9' ,'0')



    저두 초보라...죄송...쩝





    김영호 wrote:

    > 안녕하세요

    > 다름이 아니라 데이타 입력시 코드는 자동증가 시켜서 SETTING하려고 합니다.

    > (0001

    > 0002

    > 0003

    > ↓

    > )

    > 이런식으로 시퀀스를 부여할려구 하는데 문제는 중간에 이런식으로

    > '000A'라는 식의 문자가 있는 데이타가 존재합니다.

    > 그래서 WHERE절에서 숫자만으로만 구성되어진 자료들을 걸러내고 다음과

    > 같이 MAX값을 가져오면 될것 같은데...

    >

    > SELECT MAX(CODE)

    > FROM AA_TABLE_NAME

    > WHERE ????;

    >

    > 도대체 WHERE절에 'CODE'값이 숫자인것만 걸러내는 방법이 없을까요?

    > 고수님들의 선처 부탁드립니다.^^

  • Profile
    델파이 2001.10.12 03:31
    우비소녀 wrote:

    > 혹시 이렇게 하면 되지 않을까요?

    > 오라클이라면...

    >

    > SELECT MAX(TO_NUMBER(SUBSTR(필드명, -2, 1))) FROM 테이블명

    > WHERE SUBSTR(필드명, -2, 1) IN ('1','2','3','4', '5','6','7', '8', '9' ,'0')

    >

    > 저두 초보라...죄송...쩝

    >

    >

    > 김영호 wrote:

    > > 안녕하세요

    > > 다름이 아니라 데이타 입력시 코드는 자동증가 시켜서 SETTING하려고 합니다.

    > > (0001

    > > 0002

    > > 0003

    > > ↓

    > > )

    > > 이런식으로 시퀀스를 부여할려구 하는데 문제는 중간에 이런식으로

    > > '000A'라는 식의 문자가 있는 데이타가 존재합니다.

    > > 그래서 WHERE절에서 숫자만으로만 구성되어진 자료들을 걸러내고 다음과

    > > 같이 MAX값을 가져오면 될것 같은데...

    > >

    > > SELECT MAX(CODE)

    > > FROM AA_TABLE_NAME

    > > WHERE ????;

    > >

    > > 도대체 WHERE절에 'CODE'값이 숫자인것만 걸러내는 방법이 없을까요?

    > > 고수님들의 선처 부탁드립니다.^^



    이런식으로 하면 됩니다. 단 특수문자는 제외 ^^



    //알파벳을 모두 'A'로 변환시킨후 A의 존재여부를 가림

    SELECT MAX(CODE) FROM TABLE

    WHERE INSTR(TRANSLATE(UPPER(CODE), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',

    'AAAAAAAAAAAAAAAAAAAAAAAAAA'),

    'A') = 0;