2013-11-15 19 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

您使用哪種DBMS? MySQL,甲骨文,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

此查詢也生成列中的所有0。我不知道什麼是錯的? –

+0

最後一個適用於我。感謝 –

1

嘗試

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

否則,添加第三個結果來選擇,像

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

感謝您的快速響應,但不工作。 –

+0

什麼是「無法正常工作」。你用什麼dbms? – iamkrillin

+0

我已經複製了您的查詢,但列初始化爲0.並且我有phpMyAdmin –

1

根據你的DBMS,你可以只使用一個計算列(SQL服務器):

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