| Начало » Использование СУБД » PostgreSQL » Написать странный запрос с update Переход к форуму:
	| 
		
			| Написать странный запрос с update [сообщение #4476] | Wed, 14 February 2024 18:21 |  
			| 
				
				
					|  polin11 Сообщений: 9
 Зарегистрирован: January 2023
 | Junior Member |  |  |  
	| Использую PGSQL, упрощенный запрос выглядит так 
 хочется переписать запрос для того чтобы попадать в индекс, WITH a
         AS ( SELECT DISTINCT UNNEST(ARRAY['777', NULL]) "Ключ",
         UNNEST(ARRAY['111', '222']) "Знач"
         )
 update "Документы"
 set "Название" = "Название" || '_' || a."Знач"
 FROM a
 where "Id" IS NOT DISTINCT FROM  a."Ключ"
returning *отдельно для нулевых значений и не нулевых, такого типа
 
 
 этот запрос неверно определяет Знач, для своего Ключа.WITH a
         AS ( SELECT DISTINCT UNNEST(ARRAY['777', NULL]) "Ключ",
         UNNEST(ARRAY['333', '444']) "Знач"
         )
 update "Документы"
 set "Название" = "Название" || '_' || a."Знач"
 FROM a
 where
   EXISTS (
    SELECT TRUE
    FROM a
    WHERE "Id" = a."Ключ" and "Id" IS NOT NULL and a."Ключ" IS NOT NULL  
    UNION
     SELECT TRUE
    FROM a
    WHERE "Id" IS NULL and a."Ключ" IS NULL
   )
returning *Как написать подобный запрос, если не прибегать к CTE?
 |  
	|  |  | 
 
 Текущее время: Fri Oct 31 08:25:16 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.01112 секунд |