#sql #sql-server #syntax
#sql #sql-сервер #синтаксис
Вопрос:
Каким был бы синтаксис SQL для выбора 4 разных столбцов в одной строке таблицы, сложения их вместе, а затем вставки этого значения в 5-й другой столбец в той же строке? Все столбцы являются числовыми (11,2).
Например, имя таблицы — DataCheck, есть идентификатор, который является первичным ключом, так как мне выбрать col1, col2, col3, col4, где ID = 232 … и т.д., И сложить их, и вставить в col4, где id = 232 … и т.д.
Комментарии:
1. Вы пытаетесь обновить 5-й столбец в таблице или просто возвращаете 5-й вычисляемый столбец в результате вашего запроса?
2. Как правило, вы не хотите сохранять вычисленные значения. Вам нужно будет обновлять сохраненное вычисленное итоговое значение всякий раз, когда изменяется значение одного из операндов.
Ответ №1:
Если я не недопонимаю:
UPDATE MyTable SET col5 = col1 col2 col3 col4 WHERE id = 232
Ответ №2:
Errr….it не становится намного проще очевидного:
update myTable
set column5 = column1
column2
column3
column4
column5
where <some-where-clause>
Ответ №3:
Почему вы сохраняете вычисленное значение в той же строке?
Как правило, вы не должны хранить одни и те же данные дважды (в столбцах 1,2,3,4 и столбце 5). Если каким-то образом они не равны, как вы узнаете, какой столбец правильный?
Ответ №4:
Полное предположение — но работает ли это?
ОБНОВИТЬ НАБОР данных ДЛЯ проверки col5=(col1 col2 col3 col4)
Ответ №5:
Эта инструкция update должна решить вашу проблему.
update table set col5 = col4 col3 col2 col1
Комментарии:
1. если вы хотите обновить все строки, вам не нужно делать это строка за строкой с идентификатором