source

조건이 null인 경우 기본값으로 행 추가

lovecheck 2023. 10. 19. 22:25
반응형

조건이 null인 경우 기본값으로 행 추가

일부 필드가 null이면 기본값으로 행을 추가해야 합니다.

다음 SELECT 조항을 상상해 보십시오.

SELECT date, id, name, COALESCE(value1, -1), COALESCE(value2, -1), 
COALESCE(value3, -1) 
FROM (SELECT DATE("startDate" + INTERVAL(seq_ref.seq - 1) MONTH) AS month_ref 
FROM (SELECT seq FROM seq_1_to_36) seq_ref, table) table
WHERE...

그리고 다음 데이터 세트:

date        id   name       value1 value2 value3
2016-01-01  1    TEST LEFT  12     14     22
2016-01-01  1    TEST RIGHT 32     11     74
2016-02-01  1    null       -1     -1     -1
2016-03-01  1    TEST LEFT  09     66     33
2016-03-01  1    TEST RIGHT 13     41     20

기본적으로 날짜 범위의 일부 데이터를 반환합니다.그러나 일부 월에 데이터가 없는 경우 값에 대해 -1을 반환합니다.데이터가 없으면 id와 name 기본값으로 두 행을 추가하는 방법이 있는지 알고 싶습니다.

예: on2016-02-01제가 한 줄을 보여드릴 수 있을 것 같습니다.TEST LEFT-1에서 값 및TEST RIGHT값에 -1을 적용합니다.

편집: 결과는 다음과 같습니다.

date        id   name       value1 value2 value3
2016-01-01  1    TEST LEFT  12     14     22
2016-01-01  1    TEST RIGHT 32     11     74
2016-02-01  1    TEST LEFT  -1     -1     -1
2016-02-01  1    TEST RIGHT -1     -1     -1
2016-03-01  1    TEST LEFT  09     66     33
2016-03-01  1    TEST RIGHT 13     41     20

그게 가능한가요?

IFNULL() 기능을 사용할 수 있습니다.IFNULL(식, 값)은 식이 null인지 확인하고 null이면 value parameter로 대체합니다. 아마 다음과 같은 작업을 수행할 수 있을 것입니다.

    SELECT date, id, name, IFNULL(value1, -1), IFNULL(value2, -1), 
IFNULL(value3, -1) 
FROM (SELECT DATE("startDate" + INTERVAL(seq_ref.seq - 1) MONTH) AS month_ref 
FROM (SELECT seq FROM seq_1_to_36) seq_ref, table) table
WHERE...

도움이 되길 바랍니다.

언급URL : https://stackoverflow.com/questions/50817899/adding-rows-with-default-values-if-condition-is-null

반응형