메뉴 건너뛰기

SAP 한국 커뮤니티



SELECT구문 : WHERE 4.field name 비교연산자 (data objects/value)

SAP폐인 2007.11.20 16:03 조회 수 : 7208

------- SELECT구문 ------


SELECT (1.FIELD NAME)  FROM (2.TABLE NAME)
                                      INTO (3.DATA OBJECT)
                                      WHERE (4.FIELD NAME) 비교연산자 (DATA OBJECT/VALUE)


 


그럼 이제는 Where 4.field name에 대해서 생각해보도록 합시다. WHERE조건문은 실제적으로 SELECT구문에 사용되어지는 메인은 아닙니다. 단지 좀 더 정확한 데이터를 얻기 위해서, 좀 더 간결한 데이터를 얻기 위해서 사용하는 부가적인 구문이라고 말 할수 있습니다. 그리고 WHERE조건문은 SELECT뿐만 아니라 UPDATE, DELETE구문에도 적용이 가능합니다.


 


기본적으로 WHERE구문을 사용하게 되면 그 다음에는 바로 Field name이 위치하게 됩니다. 이 field는 반드시 FROM에서 가져오는 TABLE/VIEW에 위치한 필드여야 함은 당연하겠지만, INTO구문에 오는 데이터가 담기는 부분의 field와는 반드시 같을 필요는 없습니다. 그럼 왜 Field name만 올 수 있을까요? 검색을 위한 최소의 조건이자 데이터가 담기는 하나의 최소단위이기 때문입니다.  field name 다음에는 이 필드와 비교할 대상이 위치하며 그 사이에 두 대상의 비교 및 검색조건이 위치하게 됩니다. 비교할 대상은 field의 값이 담긴 Value일 수도 있고 value가 여러개 담긴 table형태의 data object일 수도 있습니다.


 


1. WHERE condition : 가장 기본적인 WHERE조건의 형태입니다. 우리들은 field의 조건을 비교연산자를 사용하여 비교대상과 동일한 field조건만을 추출하여 select구문에 적용시킬 수 있습니다. 아래 예에서는 value값이 들어가기에 비교 연산자로 EQ(=)를 사용하였지만 internal table이라는 data objects와 비교하게 되면 보통 IN이라는 비교연산자를 사용하게 됩니다.





예문)


DATA : wa_spfli type spfli.


SELECT * FROM spfli INTO wa_spfli
               WHERE carrid = 'LH'.



2. ... FOR ALL ENTRIES IN itab WHERE condition : 이 구문은 internal table에 담긴 모든 데이터를 where아래의 조건에 따라


itab의 record를 SELECT구문의 조건으로 활용한다는 의미이다. 주로 WHERE조건을 여러개 주어야 하는 상황에서 필드의 값이 여러개 담긴 data object구문을 적용하기 힘들때 itab형태에 조건문을 담아서 사용하고자 할 경우에 쓰여집니다만, 너무나 제약조건이 많고, Performance도 좋은편이 아니기에(itab의 record수마다 LOOP구문을 탄다라고 생각하면 된다.) 보통 subquery로 구현하는 방법을 사용합니다.


 


제약조건 : LIKE,BT,IN등의 비교구문이 사용불가능하다.


             : IN뒤에 오는 itab의 경우 header가 필요하지 않다.


             : 사용시, order by구문과 having구문을 사용할 수 없다.


             : itab에 Record전체 값이 중복된 값이 있으면 하나만 남는다.


             : itab뒤에 오는 WHERE조건에 필요한 field의 경우 itab에 있는 field만 가능하다.


 


아래의 예문1과 예문2는 동일한 데이터를 출력하는 구문이며 예문1의 FOR ALL ENTRIES를 쓰지 않는다면 똑같이 데이터를 뽑아오기 위해서 예문2 구문처럼 작성해야 한다는 뜻이다.


 


예문1)


SELECT * FROM sflight INTO wa_sflight
               FOR ALL ENTRIES IN ftab
               WHERE CARRID = ftab-carrid AND 
                          CONNID = ftab-connid AND
                          FLDATE = '20010228'.

예문2)


SELECT DISTINCT * FROM sflight INTO wa_sflight
                             WHERE ( carrid = 'LH' AND connid = '2415' AND fldate = '20010228' )


                                   OR ( carrid = 'SQ' AND connid = '0026' AND fldate = '20010228' )


                                   OR ( carrid = 'LH'  AND connid = '0400' AND fldate = '20010228' ).


 


3. WHERE (source_text) : 이런 구문은 자주 사용하지는 않지만 검색조건 자체를 변수화 시켜서 재사용할 수 있다는 것이 장점이다. 유저가 입력한 변수값을 바탕으로 검색조건을 만들어 사용하기 때문에 좀 더 다이내믹한 변수를 만들어낼 수 있다.


 


예문)


PARAMETERS: airline(2) TYPE C,
                       date       TYPE D.
DATA: where_clause TYPE STRING,
          connid           TYPE sflight-connid.


CONCATENATE  'carrid = ''' airline ''''' AND fldate = ''' date '''' INTO where_clause. <-검색조건설정


SELECT connid FROM sflight INTO connid
                      WHERE (where_clause).  <- ()안에 조건문 넣음
ENDSELECT.

번호 제목 글쓴이 날짜 조회 수
324 대문자로 변환 file 도련님 2008.10.31 6713
323 용어정리 [10] file 꼬마쿠키 2010.01.12 6725
322 Sap - NetWeaver Master Guide [20] file ksj 2007.01.17 6750
321 SELECT구문 : SELECT 1.field name [3] SAP폐인 2007.11.20 6785
320 BIA [6] file 현서아빠 2009.10.22 6802
319 ER-Win [3] file BC고 2010.06.19 6813
318 소스 다운로드 받는 PGM(HTML) [6] file GG 2007.07.12 6844
317 CL_BCS를 이용한 E-Mail 즉시전송 [1] 사라다 2015.09.17 6925
316 변형 생성시 동적 일자 셋팅 [4] file 조상호 2007.05.15 7017
315 실시간 SQL 조회 프로그램 (ZTOAD) [36] file 다크나잇트 2020.12.28 7026
314 1.text 포함된 Pgm 찾기- 초급용//2. 참고 싸이트(sap과 연결된 개발 프로그램 정도) => 별점 하나 [7] sagar 2009.11.02 7067
313 Sap Script 매뉴얼입니다 [2] file 유진석 2007.05.16 7094
» SELECT구문 : WHERE 4.field name 비교연산자 (data objects/value) [5] SAP폐인 2007.11.20 7208
311 SAP 자주사용되는 T-CODE 모음(모든모듈) [43] file 아밥뽀 2014.06.23 7234
310 Excel Macro를 사용한 Excel파일입니다. [16] file Pioneer 2007.02.14 7246
309 아밥교재 한글요약 PDF [89] file 박하나 2008.08.12 7257
308 ABAP data type에 관한 자료입니다. [10] file SARA 2007.03.29 7349
307 파일첨부 프로그램 예제 [21] file 임성빈 2008.07.11 7387
306 abap에서 사용하는 시스템 필드와 예제입니다. [7] file 촌놈악마 2010.05.28 7444
305 유지보수 뷰 생성 입니다~~ [3] file Silent.ww 2007.06.12 7455