일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- sap #abap #data exists #read table #xsdbool #line exists
- #apostrophe
- abap #sap #layout #layout 설정
- open sql #sap #abap #where exists #where not exists
- abap #정규표현식 #regular expression
- abap #wildcard #와일드카드 #sql #select #where조건
- abap #sap #hotspotclick #do_sum
- abap #sap #sy-index #sy-tabix #syst
- sap #abap #cl_gui_alv_grid #function code #alv
- abap #sap #color #row #layout
- abap #sap #conversion #currency #cfield #waers
- sap #cts #abap #release #merge cts #request no
- abap #sap #free #alv #clear #refresh
- abap #sap #search hlep #f4 #f4if_int_table_value_request #change column name
- abap move corresponding #abap data이동 #abap correspond mapping
- abap #se39 #srepo #sap #development #compare code
- abap #abap_move
- abap #동적 where #동적 select
- abap #sap #sy-datlo #sy-datum #syst #system variable # 시스템변수
- grave #abap #sap #backquote
- abap #sql #sap #query 실행 순서 #query 작성 순서
- sap #abap #화폐단위 #sap conversion #inr conversion
- abap #sap #conversion #currency #conversion_currency
- abap #initial #null #abap inital vs null
- abap #sap #se16h #data #tcode
- Today
- Total
0v0__DEV
[15] ABAP INITIAL & NULL 본문
ABAP에서는 모든 필드가 각자의 INITIAL VALUE를 가진다.
DATA 선언 시, 테이블 생성 시 모든 필드는 초기값(Initail Value)으로 저장된다!
Type C의 경우 공백(space, ' ' ) 으로, Type I의 경우 0 으로 저장되며
이는 Null과는 다르다
각 TYPE 별로 Initial Value 는 다음과 같다
Type | Init Value |
I, F , P, N | 0 |
C | ' ' (space) |
D | 00000000 |
T | 000000 |
Null과 Inital Value는 다음과 같은 차이점이 있다
Null | Initial Value |
어떠한 값도 갖지 않음 ! > 메모리 공간 차지 X | 값을 가짐 > 메모리 공간을 차지 |
0, '', space와는 다름 | 0, '' , Space, 공백 |
IS NULL, IS NOT NULL | IS INITIAL, IS NOT INITIAL |
값이 존재하지 않을 때, 초기값을 가지게 한다는 의미 |
ABAP에서는 기본적으로 Null 이라는 데이터는 존재하지 않는다!
이미 데이터가 존재하는 Table 에 필드를 추가할 때 intial 을 체크하지 않으면 null 값이 들어갈거라 예상했지만,
inital 필드를 설정하든 설정하지 않든 그냥 initial 값으로 저장되었따!
그래서 빈 값인 데이터를 찾으려면 SQL 문에 IS INITAL 구문을 써주어야 한다!
+ 추가)
JOIN 시점에 JOIN된 데이터가 없는 경우 ==> Null
ITAB 에 담기면 ==> INITAL
SFLIGHT 구조의 인터널테이블 LT_SFLGIHT에 CARRID = 'XX' 값을 저장하고
SCARR와 LEFT JOIN을 해주었다!
이 때 , B(인터널 테이블)의 CARRID 값이 INITIAL이면 'INIT'으로 대체하기로 했음
LT_CASE의 CARRID 필드에 'INI'T 글자가 들어가 있을 줄 알았지만, 아무 값도 존재하지 않았음 : CARRID는 NULL값
LT_CASE에 대해 CARRID 값이 NULL 인 데이터, INITIAL인 데이터를 SELECT 해보았다
LV_INIT : 데이터 18건
LV_NULL: 데이터 0건
SCARR와 LT_SFLGIHT를 JOIN 할 때, CASE 문의 IS INITIAL 을 IS NULL로 변경해보니
CARRID 필드에 'INIT'이 담긴 것을 확인 할 수 있었다!
오 예!!!

'SAP BASIC' 카테고리의 다른 글
[14] ABAP CORRESPONDING , Mapping (0) | 2025.02.28 |
---|---|
[13] ABAP SQL Select - 여러 변수에 값 동시에 담기~ (0) | 2024.08.30 |
[12]SAP(abap) - ALV Layout (0) | 2024.08.26 |
[11] ABAP OPEN SQL - WHERE EXISTS, WHERE NOT EXISTS (1) | 2024.08.23 |
[10] ABAP LINE_EXISTS (0) | 2024.08.22 |