Добавить столбец, представляющий объединение двух других столбцов Varchar

У меня есть таблица сотрудников, и я хочу добавить третий столбец, оцененный как конкатенация первого и последнего имени под названием "FullName". Как я могу это сделать, не теряя данных ни с одного из первых двух столбцов?

Ответ 1

Быстрое предисловие: этот ответ основывался на первоначально неправильном теге, который этот вопрос касался SQL Server. Я больше не знаю его работоспособности в Oracle SQL Developer.

ALTER TABLE Employees ADD FullName AS (FirstName + ' ' + LastName)

Хотя на практике я бы посоветовал вам выполнить эту операцию в вашем SELECT. Это несколько личное предпочтение, но я склонен думать, что делать что-то в ваших конечных запросах немного чище, читаемо и легче поддерживать, чем хранить дополнительные расчетные столбцы.

Edit:

В конечном итоге это было найдено в качестве ответа и указано в OP как комментарий к этому сообщению. Ниже приведен соответствующий синтаксис для базы данных Oracle Sql.

ALTER TABLE emps MODIFY (FULL_NAME VARCHAR2(50) GENERATED ALWAYS AS (first_name || ' ' || last_name) VIRTUAL); 

Ответ 2

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

например:

CREATE TABLE Employee
(
  FirstName VARCHAR(20),
  LastName VARCHAR(20),
  FullName AS CONCAT(FirstName,' ',LastName)
)

INSERT INTO Employee VALUES ('Rocky','Jeo')

SELECT * FROM Employee 

  Output:

  FirstName  LastName  FullName
  Rocky      Jeo       Rocky Jeo

Ответ 3

Это зависит от вашей цели, действительно ли вам нужно добавить новый столбец в свою базу данных, или вам просто нужно запросить "полное имя" по мере необходимости.

Чтобы просмотреть его на лету, просто запустите запрос

SELECT firstname + ' ' + lastname AS FullName FROM employees

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

Ответ 4

(Для одного результата используйте значение, равное условию where)

select * 
from TABLE_name 
where (Column1+Column2) in (11361+280,11365+250)

Ответ 5

в то время как вы добавляете новый столбец в таблицу, вы просто указываете любую цифровую или строковую функцию, применяемую при вставке, как в приведенном выше примере.

Добавить значение по умолчанию в таблицу

   ALTER TABLE Employees 
       ADD FullName AS (FirstName + ' ' + LastName)

Но после этого вам нужно обновить запрос для применения к существующей записи как

update employee set fullname = firstname + ' ' + lastname 

Тем не менее, я предлагаю использовать select-запрос всякий раз, когда вы хотите эту конкатенацию.

SELECT firstname , lastname , firstname + ' ' + lastname AS FullName FROM employees

http://www.mssqltips.com/sqlservertip/2985/concatenate-sql-server-columns-into-a-string-with-concat/