«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как обновить значения NULL в таблице с данными из строк с одинаковым именем?

Как обновить значения NULL в таблице с данными из строк с одинаковым именем?

Опубликовано 18 ноября 2024 г.
Просматривать:603

How to Update NULL Values in a Table with Data from Rows Sharing the Same Name?

Обновление строк данными из одноуровневых таблиц в одной таблице

Представьте таблицу со структурой, напоминающей эту:

ИДИМЯЗНАЧЕНИЕ
1ТестЗНАЧЕНИЕ1
2Тест2ЗНАЧЕНИЕ2
1Тест2NULL
4ТестNULL
1Test3VALUE3

Ваша задача — заполнить пустые ячейки «ЗНАЧЕНИЕ» данными из других строк с тем же «ИМЯ» (т. е. «Test» и «Test2» должны наследовать значения от своих предшественников). Желаемый результат:

IDИМЯЗНАЧЕНИЕ
1ТестЗНАЧЕНИЕ1
2Тест2ЗНАЧЕНИЕ2
1Тест2ЗНАЧЕНИЕ2
4ТестЗНАЧЕНИЕ1
1Тест3VALUE3

Проблема заключается в создании ссылок на строки внутри одного и того же элемента таблица, которая имеет определенное значение «NAME». Решение включает использование оператора JOIN:

UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE
                        FROM data_table
                       WHERE VALUE IS NOT NULL AND VALUE != '') t1
   SET t.VALUE = t1.VALUE
 WHERE t.ID = t1.ID
   AND t.NAME = t1.NAME

В этом операторе подзапрос (T1) извлекает отдельные строки с непустыми и непустыми значениями «VALUE». Затем основной запрос (t) объединяется с этим подзапросом в полях «ID» и «NAME», чтобы идентифицировать строки, которые необходимо обновить. В результате пустые ячейки «ЗНАЧЕНИЕ» заполняются соответствующими значениями из непустых строк с тем же значением «ИМЯ».

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3