Как обновить столбцы SQL с данными на основе истинного или ложного в другом столбце той же таблицы?

Общее правило заключается в следующем: если вы открыли поток, вы должны закрыть его. Если вы этого не сделали, вы не должны. Убедитесь, что код симметричен.

В случае HttpServletResponse он немного менее четкий, так как это не очевидно, если вызов getOutputStream() - это операция, которая открывает поток. Джавадок просто говорит, что это «Returns a ServletOutputStream»; аналогично для getWriter(). В любом случае, ясно, что HttpServletResponse «владеет» потоком / писателем, и он (или контейнер) отвечает за его закрытие снова.

Итак, чтобы ответить на ваш вопрос - нет, вы должны не закрывайте поток в этом случае. Контейнер должен это сделать, и если вы доберетесь до него, вы рискуете ввести тонкие ошибки в своем приложении.

1
задан Yogesh Sharma 19 March 2019 в 13:19
поделиться

3 ответа

Создайте столбец «Агент и поставщик» в типе данных bit, затем обновите

 update t
  set supplier=case when Supplier_Agent='Supplier'  then 1 else 0 end,
   agent =case when Supplier_Agent='Agent'  then 1 else 0 end

На сервере sql отсутствует логический тип данных, поэтому 0 означает false, а 1 означает true

0
ответ дан Zaynul Abadin Tuhin 19 March 2019 в 13:19
поделиться

Используйте case when

update dbo.SuppliersNPD
set supplier= case when supplier_aggent='supplier' then 1 else 0 end,
agent= case when supplier_aggent='agent' then 1 else 0 end
0
ответ дан fa06 19 March 2019 в 13:19
поделиться

Вы должны использовать функцию case when, чтобы вы могли установить значение, проверяя определенное условие.

update SNPD
set SNPD.supplier= case when SNPD.Supplier_Agent='Supplier' then 1 else 0 
end,
SNPD.Agent= case when SNPD.Supplier_Agent='Agent' then 1 else 0 end 
FROM SuppliersNPD as SNPD

Я также рекомендую вам использовать перечисление вместо «поставщик» и «агент» для определения типа поставщика. Например, вы могли бы создать столбец с именем Type и использовать код 100 для поставщиков и 200 для агентов. Это кажется более сложным, но облегчает ведение таблицы и часто используется в программном обеспечении ERP.

0
ответ дан Mark Cooper 19 March 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: