SELECT TDNAME INTO gt_data-DNAME
UP TO 1 ROWS
FROM STXH
WHERE replace(TDNAME,' ','') LIKE gt_data-MATNR + gt_data-CHARG.
ENDSELECT.
로 나타내고 싶은데 구문에서 에러가 납니다.
댓글 2
-
activeman
2010.06.01 18:05
-
특정단어
2010.06.01 18:21
1. select ~ endselect 구문을 사용하셨지만 up to 1 rows 를 쓰신 걸 보니, 결국 select single 을 원하시는 것 같네요.
2. select ~ endsleect 구문에 up to 1 rows를 쓰는 경우는, 주로 order by를 같이 붙여서 쓰기 위함입니다.
3. 문자열의 경우 제목에서 언급하신 것과 같이 concatenate A B into C 를 쓰시는 게 맞습니다. 다만, activeman 님의 말씀처럼 open sql 상에서는 C 변수를 할당해서 사용하셔야겠습니다.
4. open sql 은 replace()와 같은 문자열 함수를 지원하지 않습니다. 그러므로, 꼭 tdname의 space를 null space로 치환해야 할 필요가 있다면 다른 방법을 강구하셔야겠습니다.
그럼.. 좋은 방법 찾아내시길~
OPEN SQL에서는 지원하지 않는 기능입니다.
아래와 같이 변수를 하나 선언하시고 해당 내용을 변수에 넣으시고 쿼리를 생성하셔야 합니다.
변수 = gt_data-MATNR + gt_data-CHARG
SELECT TDNAME INTO gt_data-DNAME
UP TO 1 ROWS
FROM STXH
WHERE TDNAME LIKE 변수 .
ENDSELECT.
즐밥하세요..