SQL: замена нескольких нулей уникальными значениями - PullRequest
0 голосов
/ 21 апреля 2020

Например, если column1 имеет набор описаний и несколько значений NULL, и я хочу заменить каждый NULL уникальным описанием.

используя функцию COALESCE, я могу сделать

COALESCE(Column1,'Description')

, и это заменит каждый NULL в столбце на «описание», как я могу указать каждый NULL индивидуально и не заменить все их одинаковыми значениями?

1 Ответ

0 голосов
/ 21 апреля 2020

Сначала вы должны решить, заменяете ли вы пустые значения, в зависимости от того, по каким критериям. Затем вы можете использовать CASE, чтобы определить индивидуальное описание для каждого критерия или условия. Здесь ниже я взял критерий номера строки

        WITH data
         AS (SELECT NULL id
             FROM   dual
             UNION ALL
             SELECT NULL
             FROM   dual),
         d1
         AS (SELECT ROWNUM rw,
                    d.*
             FROM   data d)
    SELECT CASE
             WHEN rw = 1 THEN COALESCE(id, 'star')
             ELSE COALESCE(id, 'moon')
           END AS id
    FROM   d1; 
...