[轉貼]SQL 語法如何將多欄位查詢結果合併成一個字串

[轉貼]SQL 語法如何將多欄位查詢結果合併成一個字串

不常用的東西,果然會忘記,今天剛好有人問起如何將多欄位查詢結果合併成一個字串,努力回想下,想起來了,果然可以,順便做一下紀錄,當作備忘。
測試資料:
Table: usrdata
Field: id, firstname, lastname
Data: 0,’Java’,’Sun’ ; 1, ‘java’,’oracle’

Oracle Database:
SQL> SELECT firstname||lastname FROM USRDATA;
firstname||lastname
—————————–
JavaSun
javaoracle

看起來在Oracle環境下是可行的。朋友使用的資料庫為PostgreSQL,驗證也是可行的。

本來事情已解決,但是空閒下來時,就想說MySQL也來試試看,結果….失敗了…
mysql> select firstname||lastname from usrdata;
firstname||lastname
———————
0
0

查了一下MySQL手冊(http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat)
mysql> select concat(firstname, lastname) from usrdata;
concat(firstname, lastname)
—————————–
JavaSun
javaoracle

嘿嘿,解決了,繼續來驗證微軟的資料庫(SQL Server, access),沒記錯的話,關鍵字是(&)
select firstname & lastname from usrdata;
firstname & lastname
—————————–
JavaSun
javaoracle

總結:
每個資料庫在執行SQL語法時,字串連結的處理都不太一樣。
Oracle和PostgreSQL使用符號(||)。
MySQL使用CONCAT(col1, col2, …)。
SQL Server使用符號(&)。

 

來源:http://mark-freefox.blogspot.tw/2011/07/sql.html

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *