добавление столбца в таблицу sql из значений других столбцов

#sql

Вопрос:

У меня есть такая таблица sql:

 Name | gender ----------- John | Male Jane | Female Alice | Female  

Я хочу добавить еще один столбец в таблицу, которая использует два других столбца в своем содержании следующим образом:

 Name | gender | Description  ---------------------------- John | Male | John is a Male. Jane | Female | Jane is a Female. Alice | Female | Alice is a Female.  

Комментарии:

1. Я удалил конфликтующие теги СУБД. Пожалуйста, добавьте только один тег для продукта базы данных, который вы действительно используете.

2. Должна ли эта колонка быть постоянной? Может быть, вам нужно генерировать его только при запросе?

3. Это не то, что вы хотите хранить, и это может привести к несоответствиям данных; создайте представление , если вам нужно, чтобы это было реализовано в базе данных (не так ли?)

Ответ №1:

Для MS SQL вы можете использовать следующее для создания вычисляемого столбца. Содержимое этого столбца вычисляется при его выборе.

 ALTER TABLE Foo ADD Description AS CONCAT(Name, ' is a ', Gender)  

Если вы хотите, чтобы значение сохранялось на диске (вычислялось при вставке/обновлении), используйте следующую инструкцию

 ALTER TABLE Foo ADD Description AS CONCAT(Name, ' is a ', Gender) PERSISTED  

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