728x90
반응형
<set>을 사용해서 안에 컬럼 값이 전부
<if> 처리해서 값이 null 이나 빈문자열이 아니면 update 하려고 작성을 하였는데,
값이 전부 0 이니까 아무 값도 없는 것으로 나와서
update 문에 SET 이 빠진 것으로 간주되어 에러가 났다.
어차피 null 이면 0으로 입력한다는
COALESCE(TO_NUMBER(NULL),0) 으로 작성해 둬서 if문을 다 뺐다.
MyBatis에서 `<if>` 문에서 값을 평가할 때 `null`, `""` (빈 문자열), 때로는 `0`과 같은 특정 값이 "falsy"로 동작할 수 있습니다. 즉, 특히 표현식이 부울 검사와 유사한 경우 조건 검사를 통과하지 못합니다. ### MyBatis에서 Falsy 값과 `0`에 대한 설명 **JavaScript**와 같은 프로그래밍 언어에서 `null`, `undefined`, `""` (빈 문자열), `0`, `NaN`, `false`와 같은 값은 "falsy"로 간주됩니다. 조건에서 평가될 때 이러한 값은 `false`와 동일하게 처리됩니다.
아니면
728x90
반응형
'DB' 카테고리의 다른 글
[DB][Oracle] Number(1,0) (0) | 2024.11.21 |
---|---|
[SQL] 문자열 리터럴에 작은 따옴표를 사용해야 하는 이유 (0) | 2024.11.14 |
[DB][MySQL] 날짜+시간 문자열과 날짜문자열 비교하기 (0) | 2024.10.23 |
[DB][Oracle] 날짜+시간 문자열과 날짜문자열 비교하기 (0) | 2024.10.22 |
[DB][SQL] 01월 ~ 12월 데이터가 없어도 조회하기 (1) | 2024.10.16 |