У меня есть таблица сотрудников, и я хочу добавить третий столбец, оцененный как конкатенация первого и последнего имени под названием "FullName". Как я могу это сделать, не теряя данных ни с одного из первых двух столбцов?
Добавить столбец, представляющий объединение двух других столбцов Varchar
Ответ 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/