database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
ㆍInformix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Informix Q&A 2166 게시물 읽기
No. 2166
쿼리문 해결부탁드립니다.
작성자
최인선(insun2000)
작성일
2005-05-11 10:55
조회수
8,198

Test_Table에 fld1 , fld5 라는 필드가 있는데요.

 

fld1 fld5
1 AB123456789 050505^050506^050604^1234
2 AB123456789 20050505^20050506^20050604^1234
3 AB123456789 20050505^^^1234
4 AB123456789 2005-05-05^2005-05-06^2005-06-04^1234


제가 추출하고 싶은것은 데이타중 fld1의 1234와 fld5의 세번째^뒤에 숫자가 1234인 데이타를

추출하고 싶은데요..

select * from Test_Table

where fld[2,5] = fld5[28,31] <!--- 이부분

으로 추출하게 되면 1번만 나오게 되기 때문에 물론 ^사이에 날짜데이타는 없을수도 있을수도

있습니다.

 

뭔가 방법이 없을까요

이 글에 대한 댓글이 총 2건 있습니다.

instr 함수 만들어서 사용하세요.

원하는 위치에 원하는 스트링을 못찾으면 0

찾으면 해당하는 문자 위치를 returun합니다.

 

아래의 걸로 procedure 만드시고 사용은

select * from test_table

where fld[2,5] = fld5[instr(fld5,"^",3)+1,4]

이렇게 하시면 될꺼 같읍니다.

 

 

DROP PROCEDURE instr;
CREATE PROCEDURE instr(str1 VARCHAR(255), str2 VARCHAR(255), nocc int default 1)
  RETURNING INTEGER;

   DEFINE i,j,k,l,l1,l2 INTEGER;
   DEFINE substr1, substr2 VARCHAR(255);

   LET k = 0 ;
   LET l = 0 ;
   WHILE  nocc != k
     LET l1 = nvl(length(str1),0);
     LET l2 = nvl(length(str2),0);
     FOR i = 1 TO l1
       LET substr1 = str1;
       LET substr2 = str2;
       FOR j = 1 TO l2
         IF substr1[1] != substr2[1] THEN
           EXIT FOR;
         END IF;
         LET substr1 = substr1[2,255];
         LET substr2 = substr2[2,255];
       END FOR;
 
       IF j > l2 THEN
         EXIT FOR;
       END IF;

       LET str1 = str1[2,255];
     END FOR;

     IF i > l1 OR i = -1 THEN
       LET l = 0;
       LET k = nocc;
     ELSE
       LET str1 = str1[2,255];
       LET k = k+1;
       LET l = l+i;
     END IF;
   END WHILE
   RETURN l;

END PROCEDURE;

 

prolin님이 2005-05-30 19:18에 작성한 댓글입니다. Edit

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

 

select * from Test_Table where fld5 matches "*^*^*^" || fld1[3,6];

 

fld5 에 ^ 4개 후에 1234가 나올경우 문제가 되긴 하지만

 

항상 ^가 3개라면 잘 될것 같네요...

 

예은빠님이 2005-05-30 20:32에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2169set explain on [2]
Tiger
2005-05-16
8167
2168[질문] 리눅스에 인포믹스 설치를 했는데... (황당!) [2]
남성식
2005-05-13
8270
2167java.sql.SQLException: com.informix.asf.IfxASFException: DB ¼­¹? (ejinwon_tcp)¿¡ ¿?°???´??? ½?ÆÐ?ß½?´?´?.
손님
2005-05-11
7491
2166쿼리문 해결부탁드립니다. [2]
최인선
2005-05-11
8198
2165restore 하고 디비 기동시 에러가 납니다,,,
장나라
2005-05-11
8083
2164ontape 으로 백업했을경우 복구 질문입니다,,, [1]
발가락
2005-05-10
7416
2163sbspace 공간이 없는데요.. [1]
급해요
2005-05-06
8204
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.084초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다