2013-11-15 4 views
0

У меня есть два столбца в моей базе данных, как:Как два столбца в другом столбце с использованием SQL-запроса?

Fisrt Name |  Last Name | Full Name 
------------------------------------------------ 
Fayyaz  |  Jaan  | 
Danny  |  Rock  | 
Tom   |  Jerry  | 

У меня есть еще один столбец «Полное имя», которое пусто, и я хочу, чтобы объединить эти два столбца в третьем столбце, как»

Fisrt Name |  Last Name | Full Name 
---------------------------------------------------- 
Fayyaz  |  Jaan  | Fayyaz Jaan 
Danny  |  Rock  | Danny Rock 
Tom   |  Jerry  | Tom Jerry 

Любой helpfor SQL запрос. Спасибо

Привет всем Я нашел правильную нотацию concatination двух столбцов в запросе

UPDATE contact SET fullName=CONCAT(firstName,LastName) 

Но проблема в том, что в приведенном столбце нет пробела между первым и последним именем. как «TomJerry» и «DannyRock» Любая помощь?

+1

Какая СУБД вы используете? MySQL, Oracle, Postgres, что-то еще? –

+0

В следующий раз укажите БД, которую вы используете. Подобные вещи зависят от БД. – wvdz

ответ

2

Возможно, это будет работать:

UPDATE <table> SET FullName = FirstName || ' ' || LastName 

Или, видя ваши изменения, то это будет вероятно, работает:

UPDATE <table> SET FullName = CONCAT(FirstName,' ',LastName); 

И, если это не сработает, то это будет:

UPDATE <table> SET FullName = CONCAT(CONCAT(FirstName,' '),LastName); 
+0

этот запрос также генерирует все 0s в столбце. Я не знаю, что случилось? –

+0

Последний работает для меня. Спасибо –

1

попробовать

update <table> set FullName = FirstName + ' ' + LastName 

В противном случае, добавить 3-й результат, чтобы выбрать, что-то вроде

select firstname, lastname, firstname + ' ' + lastname as FullName from <table> 
+0

Спасибо за ваш быстрый ответ, но он не работает. –

+0

что именно не работает. Какие dbms вы используете? – iamkrillin

+0

Я скопировал ваш запрос, но столбец инициализируется 0. и у меня phpMyAdmin –

1

В зависимости от СУБД, вы можете просто использовать вычисляемый столбец (SQL Server):

CREATE TABLE users (
    firstName varchar(30), 
    lastName varchar(30), 
    fullName AS firstName + ' ' + lastName 
); 

При использовании MySQL, вы можете use a trigger сделать это автоматически или вручную объединить столбцы:

UPDATE tableName SET fullName = CONCAT(firstName, ' ', lastName) 
+0

Я использую MYSQL, который поддерживает только функцию CONCAT для конкатенации, но не добавляет пробела между значением типа «FayyazJaan», между двумя именами должно быть пробел. Спасибо –

+0

Другой вариант - использовать MariaDB, который реализовал вычисляемые столбцы. –

+0

@ypercube MariaDB не круто. Я предпочитаю JoseDB. – Kermit

Смежные вопросы